Perl-Skript zum Zusammenführen mehrerer Dateien Zeile für Zeile
Kann jemand bitte helfen Sie mir mit dem schreiben ein Perl-Skript, die als input 5 text-Dateien, und erstellen Sie eine neue text-Datei mit der Zusammenführung jede Zeile alle 5 Dateien.
Sollte dies durch die Eröffnung von 5 Lesen-streams gleichzeitig oder wie bei java einige zufällige Datei-reader ist erhältlich in Perl ?
Danke!
- Ja, können Sie 5 Dateien auf einmal (und weit mehr als das) in Perl. Haben Sie versucht, an alle zu lösen, das problem selbst?
- Meinst du gerade1 von Datei1, gerade1 von Datei2,..., gerade2 von Datei1, "line2" von Datei2... ?
- ja Guru, genau das meine ich. Ja dan1111, ich habe versucht, aber ich mache etwas falsch. Kopieren, fügen Sie den code, nachdem du es ein wenig. Vielen Dank für die Beantwortung. Und ich entschuldige mich für nicht Entsendung meinen code mit der Frage.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieses Programm erwartet eine Liste von Dateien auf der Kommandozeile (oder auf Unix-Systemen, ein wildcard-Datei-Spezifikation). Es erstellt ein array von filehandles
@fh
für diese Dateien und liest dann die von jeder von Ihnen wiederum, zum drucken des zusammengeführten Daten zuSTDOUT
grep { not eof } @fh
ist eine deutliche Verbesserung im Vergleich zu dem, was ich hatte, mit zu kommen.Hier ist ein Perl-Skript, das die Arbeit auf einer beliebigen Anzahl von Dateien:
a.txt:
b.txt:
merged.txt:
$_= $f
in Ihremmap
Aufruf ersetzt alle Dateinamen in@files
mit Ihrer Datei verarbeitet, wird es so und mit den gleichen Daten wie in@fh
. Ich nehme an, Sie wollen das nicht, so sollten Sie nur verwenden$f
anstelle von zuweisen zu$_
Wenn ein nicht-perl-Lösung ist ok mit Ihnen, können Sie versuchen, diese:
wo f1,f2,..sind Ihre text-Dateien.