Ich suche nach einer guten Methode, um zwei oder mehr Dateien Zeile für Zeile mit der Zipper-Methode (auch als späte Zusammenführung bezeichnet) zusammenzuführen. Angenommen, wir haben drei Dateien, sollte das Ergebnis folgendermaßen aussehen:
line1 file1
line1 file2
line1 file3
line2 file1
line2 file2
line2 file3
...
BEARBEITEN
Ich habe ein kleines Python-Skript geschrieben, das dazu in der Lage ist:
#!/usr/bin/python
import sys, itertools
fileList = []
for file in sys.argv[1:]:
f = open(file, "r")
fileList.append(f.read().split("\n"))
for z in itertools.izip_longest(*fileList):
print "\n".join([i for i in z if i is not None])
Ich frage mich immer noch, ob es ein Standardwerkzeug oder eine clevere Kombination von ihnen gibt, die dasselbe tun.
text-processing
merge
scai
quelle
quelle
paste
viele Leerzeilen, wenn die Dateien ungleich lang sind.| grep -v '^$'
.Ich habe ein kleines Perl-Skript geschrieben, das dies tut
Speichern Sie es in einer Datei und rufen Sie es auf
Das ist mindestens eine Möglichkeit, Ihre Aufgabe zu lösen.
quelle
Eine andere Python-Version, die nicht alle Dateien gleichzeitig in den Speicher lesen muss:
Ersetzen Sie izip_longest durch zip_longest und es funktioniert auch in Python 3.x.
quelle