Negue a condição:
awk 'NR==FNR{a[$1];next}!($3 in a)' extract.file input.file
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?
Negue a condição:
awk 'NR==FNR{a[$1];next}!($3 in a)' extract.file input.file
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.
Tags grep text-processing awk