93578
28.06.2019, aktualisiert um 09:50:35 Uhr
2150
6
0
2 Textdateien mit je 2 Spalten (1 Spalte in jeder Datei ist gleich) zusammenfügen
Hallo liebe Gemeinde,
ich habe eine kleine Frage an Euch:
ich habe 2 Textdateien (natürlich als Muster, echte Dateien haben ca 200.000 Zeilen und mehrere Automarken):
Datei1:
Ford Fiesta:5000152
Ford Kuga:5000153
Ford Ka:5000166
Ford Fiesta:5000187
Ford Ka:5000152
Ford Mustang:5000153
Ford Kuga:5000148
Datei 2:
5000148:Lager1-ParkplatzB
5000152:Lager2-ParkplatzA
5000153:Lager2-ParkplatzB
5000166:Lager3-ParkplatzA
5000187:Lager3-ParkplatzC
Als Ergebnis brauche ich:
Ford Fiesta:5000152:Lager2-ParkplatzA
Ford Kuga:5000153:Lager2-ParkplatzB
Ford Ka:5000166:Lager3-ParkplatzA
Ford Fiesta:5000187:Lager3-ParkplatzC
Ford Ka:5000152:Lager2-ParkplatzA
Ford Mustang:5000153:Lager2-ParkplatzB
Ford Kuga:5000148:Lager1-ParkplatzB
Wie kann ich das ohne Datenbank realisieren? Leider verstehe im Perl nicht viel. Habe aber gehört, dass damit es am einfachsten und am schnellsten ist. Kann mir jemand dabei helfen?
ich habe eine kleine Frage an Euch:
ich habe 2 Textdateien (natürlich als Muster, echte Dateien haben ca 200.000 Zeilen und mehrere Automarken):
Datei1:
Ford Fiesta:5000152
Ford Kuga:5000153
Ford Ka:5000166
Ford Fiesta:5000187
Ford Ka:5000152
Ford Mustang:5000153
Ford Kuga:5000148
Datei 2:
5000148:Lager1-ParkplatzB
5000152:Lager2-ParkplatzA
5000153:Lager2-ParkplatzB
5000166:Lager3-ParkplatzA
5000187:Lager3-ParkplatzC
Als Ergebnis brauche ich:
Ford Fiesta:5000152:Lager2-ParkplatzA
Ford Kuga:5000153:Lager2-ParkplatzB
Ford Ka:5000166:Lager3-ParkplatzA
Ford Fiesta:5000187:Lager3-ParkplatzC
Ford Ka:5000152:Lager2-ParkplatzA
Ford Mustang:5000153:Lager2-ParkplatzB
Ford Kuga:5000148:Lager1-ParkplatzB
Wie kann ich das ohne Datenbank realisieren? Leider verstehe im Perl nicht viel. Habe aber gehört, dass damit es am einfachsten und am schnellsten ist. Kann mir jemand dabei helfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 466611
Url: https://administrator.de/contentid/466611
Ausgedruckt am: 24.11.2024 um 05:11 Uhr
6 Kommentare
Neuester Kommentar
Google liefert dazu doch genug Ergebnisse?!
z.B.:
https://www.tutorials.de/threads/perl-zwei-dateien-zusammenfuegen.347897 ...
z.B.:
https://www.tutorials.de/threads/perl-zwei-dateien-zusammenfuegen.347897 ...
Servus,
bin zwar momentan etwas Perl "eingerostet", aber probier mal (Pfade anpassen):
Für den Fall das eine Nummer nicht zugeordnet werden kann wird im Beispiel <NOT FOUND> hinter den jeweiligen Eintrag in die Ausgabedatei geschrieben.
Mit Bash & Co ist das auch problemlos möglich, habe ich hier in ähnlicher Weise soweit ich mich erinnere irgendwo schon mal gepostet, finds nur gerade nicht, ließe sich aber auch bei Bedarf schnell runter tippen.
Grüße Uwe
bin zwar momentan etwas Perl "eingerostet", aber probier mal (Pfade anpassen):
#!/usr/bin/perl
my $file1 = "./file1.txt";
my $file2 = "./file2.txt";
my $fileout = "./result.txt";
open (my $FIN, "<", $file1);
open (my $FOUT,">",$fileout);
while(my $line = <$FIN>){
chomp($line);
my $num = (split(/:/,$line))[1];
@found = `grep '^$num' $file2`;
if (@found){
chomp(@found);
print $FOUT join(":",$line,(split(/:/,@found))[1]) ."\n";
}else{
print $FOUT join(":",$line,"<NOT FOUND>\n");
}
}
close $FIN;
close $FOUT;
Mit Bash & Co ist das auch problemlos möglich, habe ich hier in ähnlicher Weise soweit ich mich erinnere irgendwo schon mal gepostet, finds nur gerade nicht, ließe sich aber auch bei Bedarf schnell runter tippen.
Grüße Uwe