
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 sed
truco puede hacer esto.
IFS='
' # If whitespaces exist in file 2
cat file2.txt | while read i; do
sed -i '/^'"$i"',/d' file1.txt
done