Excluir linhas com palavras específicas no arquivo

0

Eu quero fazer um arquivo de saída que exclua as linhas que têm números em outro arquivo que estão presentes na coluna 3 do arquivo de entrada.

Para incluir as linhas com os números na coluna 3, usei este script (com a ajuda do Guru):

awk 'NR==FNR{a[$1];next}($3 in a)' extract.file input.file > output file

Mas agora não quero copiar as linhas com os números para o arquivo de saída.

Como exemplo: Eu tenho extract.file com:

123
689
456

E input.file com

1 AB 123 home 123
1 AC 568 cat 123
1 BC 689 dog 565
1 BB 456 car 456

E eu quero um arquivo de resultado com apenas:

1 AC 568 cat 123

Alguém sabe como alterar o script ou tem outro script que funcione nisso?

    
por Nicole 21.12.2016 / 14:59

2 respostas

1

Negue a condição:

awk 'NR==FNR{a[$1];next}!($3 in a)' extract.file input.file
    
por 21.12.2016 / 15:17
0

O (x na matriz) retorna um valor, então para fazer "não na matriz", você pode fazer isso:

awk 'NR==FNR{a[$1];next}($3 in a ==0)' extract.file input.file

isso também funciona.

    
por 21.12.2016 / 15:24