93578
Nov 15, 2017, updated at Jan 22, 2018 (UTC)
5812
2
0
2 txt-Dateien vergleichen und gleiche Zeilen in der Datei 1 durch die Zeilen aus der Datei 2 ersetzen
Hallo,
ich habe folgendes Problem: Es existieren zwei Text-Dateien, die so aussehen:
1) (insgesamt 102.600.000 Zeilen)
2) (insgesamt 50.000.000 Zeilen)
Nun würde ich die beiden Dateien gerne zeilenweise vergleichen und die Zeilen in der ersten Datei, die mit Zeilen der zweiten Datei identisch sind (xxxx, yyyy, zzzz), so ersetzen:
Die Duplikate in der ersten Datei müssen drin bleiben.
Hat jemand deine Idee?
Ich habe gleiche Frage zwar schon mal im Linux-Forum gestellt, habe aber die richtige Lösung aber leider nicht gefunden (wegen vielen Sondernzeichen).
Danke
ich habe folgendes Problem: Es existieren zwei Text-Dateien, die so aussehen:
1)
xxxx
aaaa
xxxx
xxxx
xxxx
yyyy
yyyy
yyyy
zzzz
zzzz
2)
aaaa:D\'0%k
xxxx:H\'0%k
yyyy:\';äß:
zzzz:=-][p\';
Nun würde ich die beiden Dateien gerne zeilenweise vergleichen und die Zeilen in der ersten Datei, die mit Zeilen der zweiten Datei identisch sind (xxxx, yyyy, zzzz), so ersetzen:
aaaa:D\'0%k
xxxx:H\'0%k
xxxx:H\'0%k
xxxx:H\'0%k
yyyy:\';äß:
yyyy:\';äß:
yyyy:\';äß:
zzzz:-][p\';
zzzz:-][p\';
Die Duplikate in der ersten Datei müssen drin bleiben.
Hat jemand deine Idee?
Ich habe gleiche Frage zwar schon mal im Linux-Forum gestellt, habe aber die richtige Lösung aber leider nicht gefunden (wegen vielen Sondernzeichen).
Danke
Please also mark the comments that contributed to the solution of the article
Content-Key: 354924
Url: https://administrator.de/contentid/354924
Printed on: May 4, 2024 at 16:05 o'clock
2 Comments
Latest comment
Servus,
z.B. in dieser Manier.
Grüße Uwe
z.B. in dieser Manier.
import io
STRFILE1 = 'txt1.txt'
STRFILE2 = 'txt2.txt'
STRFILERESULT = 'result.txt'
fIN = open(STRFILE1,'r')
strContent = fIN.read()
fIN.close()
with open(STRFILE2,'r') as f:
for line in f:
mapping = line.split(":",1)
strContent = strContent.replace(mapping,mapping[1].rstrip())
fOUT = open(STRFILERESULT,'w')
fOUT.write(strContent)
fOUT.close()