
Ich bin ziemlich neu im Bash-Scripting und wäre daher für jede Hilfe sehr dankbar. Unten steht, was ich erreichen möchte.
Ich habe zwei Textdateien. Ich möchte alle Zeilen der ersten Datei löschen, die mit einer meiner Zeichenfolgen in der zweiten Datei vor dem Komma übereinstimmen.
z.B
Datei 1:
this_is_a_test.txt,11dsdsdsdsd
this_is_a_test24.txt,545467ddd
this_is_a_test22,121244442
Datei 2:
this_is_a_test.txt
this_is_a_test24.txt
this_is_a_test22
Gewünschte Ausgabe: Leer
Antwort1
Sie können verwenden:
grep -vFf file2 file1
Beachten Sie, dass weiterhin Zeilen gelöscht werden, auch wenn nach dem Komma eine Übereinstimmung vorliegt.
Antwort2
Mit einem einfachen sed
Trick gelingt dies.
IFS='
' # If whitespaces exist in file 2
cat file2.txt | while read i; do
sed -i '/^'"$i"',/d' file1.txt
done