
93578
10.01.2018, aktualisiert um 10:50:34 Uhr
Nach Zeilen aus der ersten Textdatei in der zweiten Textdatei suchen und diese dort entfernen
Frohes Neues an alle!
Ich habe 2 Textdateien.
Die erste Textdatei beinhaltet Suchbegriffe, die ich in der zweiten Datei finden und löschen will. Die erste Datei ist ca. 5 MB Groß.
Datei1.txt:
Die zweite Textdatei beinhaltet Begriffe, die durchsucht (zeilneweise) und bei Übereinstimmung mit dem Begriff aus der ersten Datei gelöscht werden müssen. Die zweite Datei ist ca. 20 GB groß.
Datei2.txt:
Am Ende soll nur das Wort "mercedes" bleiben.
Bis jetzt habe ich folgendes Bash-Script benutzt (hat mein Vorgänger geschrieben):
und dann:
Leider bei solchen größen Dateien (5 MB und 20GB) dauert es mit dem GREP-Befehl zu lange (bis 1-3 Tagen) und der RAM-Kapazität reicht dafür nicht aus (trotz 64 GB RAM kommt immer wieder Speicherzugriiffsfehler, weil RAM über 100% belastet wird).
Wie kann man diese Sache beschleunigen ohne die Datei 1 auf zig kleinere Dateien unterteilen? AWK? Aber wie?
Ich habe 2 Textdateien.
Die erste Textdatei beinhaltet Suchbegriffe, die ich in der zweiten Datei finden und löschen will. Die erste Datei ist ca. 5 MB Groß.
Datei1.txt:
heinz
heinz-olaf
gunther
dennis
oxana
irene
claudia
roxana
klaus
Die zweite Textdatei beinhaltet Begriffe, die durchsucht (zeilneweise) und bei Übereinstimmung mit dem Begriff aus der ersten Datei gelöscht werden müssen. Die zweite Datei ist ca. 20 GB groß.
Datei2.txt:
heinz
heinz.musterschmidt
heinz-peter
mercedes
gunther12
gunther_mustermann
dennis-1
dennis oldways
oxana-rock
pustekuchenoxana
irene, ich liebe dich
irene34
19irene68
claudia_alpha
claudia-beta
claudia-gamma
roxana aus roxet
roxana-bilbao
klaus-maus
superklaus
Am Ende soll nur das Wort "mercedes" bleiben.
Bis jetzt habe ich folgendes Bash-Script benutzt (hat mein Vorgänger geschrieben):
#!/bin/bash
if [ $# -ne 1 ];
then
echo "usage: ./clean.sh original.txt > neu.txt"
exit 2
fi
grep -v -f Datei1.txt $1
und dann:
./clean.sh Datei2.txt > neu_aus_Datei2.txt
Leider bei solchen größen Dateien (5 MB und 20GB) dauert es mit dem GREP-Befehl zu lange (bis 1-3 Tagen) und der RAM-Kapazität reicht dafür nicht aus (trotz 64 GB RAM kommt immer wieder Speicherzugriiffsfehler, weil RAM über 100% belastet wird).
Wie kann man diese Sache beschleunigen ohne die Datei 1 auf zig kleinere Dateien unterteilen? AWK? Aber wie?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 360560
Url: https://administrator.de/forum/nach-zeilen-aus-der-ersten-textdatei-in-der-zweiten-textdatei-suchen-und-diese-dort-entfernen-360560.html
Ausgedruckt am: 05.05.2025 um 23:05 Uhr
3 Kommentare
Neuester Kommentar

Mal sed benutzen
Logdateien bereinigen mit sed
Logdateien bereinigen mit sed