
Eu sou muito novo em scripts bash e qualquer ajuda seria muito apreciada. Abaixo está o que eu quero alcançar.
Eu tenho dois arquivos de texto. Quero excluir todas as linhas do primeiro arquivo que correspondam a qualquer uma das minhas strings no segundo arquivo antes da vírgula.
por exemplo
Arquivo 1:
this_is_a_test.txt,11dsdsdsdsd
this_is_a_test24.txt,545467ddd
this_is_a_test22,121244442
Arquivo 2:
this_is_a_test.txt
this_is_a_test24.txt
this_is_a_test22
Saída desejada: em branco
Responder1
Você pode usar:
grep -vFf file2 file1
Cuidado para que ele ainda exclua linhas, embora correspondam após a vírgula.
Responder2
Um truque simples sed
pode fazer isso.
IFS='
' # If whitespaces exist in file 2
cat file2.txt | while read i; do
sed -i '/^'"$i"',/d' file1.txt
done