Eliminar líneas que coincidan con una cadena antes de la coma

Eliminar líneas que coincidan con una cadena antes de la coma

Soy bastante nuevo en las secuencias de comandos bash y cualquier ayuda sería muy apreciada. A continuación se muestra lo que quiero lograr.

Tengo dos archivos de texto. Quiero eliminar todas las líneas del primer archivo donde coincida con cualquiera de mis cadenas en el segundo archivo antes de la coma.

p.ej

Archivo 1:

this_is_a_test.txt,11dsdsdsdsd
this_is_a_test24.txt,545467ddd
this_is_a_test22,121244442

Archivo 2:

this_is_a_test.txt
this_is_a_test24.txt
this_is_a_test22

Salida deseada: en blanco

Respuesta1

Puedes usar:

grep -vFf file2 file1

Tenga en cuenta que todavía elimina líneas aunque coincidan después de la coma.

Respuesta2

Un simple sedtruco puede hacer esto.

IFS='
' # If whitespaces exist in file 2
cat file2.txt | while read i; do
  sed -i '/^'"$i"',/d' file1.txt
done

información relacionada