Mehrere Zeilen (unterschiedlicher Wert) aus einer Liste löschen.

jeudi 10 septembre 2015

Guten Tag liebe Linux Gemeinde.

Ich stehe vor folgendem Problem:

Liste A (1,6 Millionen Zeilen)
Inhalt (Abgeändert)
AB@,AB1,AB2
AC@,AC1,AC2
AD@,AD1,AD2
...
...
...

Liste B (60 Tausend Zeilen)
Inhalt (Abgeändert)
AB@
AS@
AL@
...
...
...

Ich möchte ganz gerne das aus Liste A die Zeilen mit den Werten aus Liste B gelöscht werden.
Meine Versuche sahen wie folgt aus (Bitte nicht den Kopf abreissen ich bin kein Experte):

Code:

for i in $(<ListeB); do

cat ListeA | grep -v "$i" > tmp
#cat ListeA | sed "/$i/d" > tmp
mv tmp ListeA

done

Dadurch das beide Listen relativ groß sind habe ich natürlich total viele Schreibzugriffe und mein kleiner Code oben braucht auch extrems lange (10 Zeilen in 30-40 Sekunden)

Kann mir jemand helfen dieses Problem Resourcen freundlicher und schneller zu lösen ?

Vielen Dank im Vorraus.

Gruß


0 commentaires:

Enregistrer un commentaire

 

Lorem

Ipsum

Dolor