Adicione -w
a grep
para fazer correspondência de palavras inteiras:
$ grep -vw 0 infile
AA 110 B 2 .. BB 3 ... BBB 3 D F 3 D D
AA 120 D 2 .. FF 3 ... FFF 3 D F 3 D D
Eu tenho um arquivo assim:
AA 110 B 2 .. BB 3 ... BBB 3 D F 3 D D
AA 111 B 2 .. BB 3 ... BBB 0 F F 0 F F
AA 112 C 2 .. BB 3 ... BBB 0 D F 0 D F
AA 120 D 2 .. FF 3 ... FFF 3 D F 3 D D
Eu gostaria de remover qualquer linha que contenha o valor numérico específico de 0. Se eu fizer isso:
sed '/0/d' infile > newfile
as linhas 1 e 4 são excluídas porque contêm "0s" em 110 e 120. Tentei outras opções com grep grep -v '0' infile > newfile
ou awk, mas sem sorte.
Tenho certeza de que existe uma maneira direta de fazer isso, mas não consigo encontrá-lo. Alguma idéia?
Obrigado!
Tente âncoras de limite de palavras
sed '/\b0\b/d' file
AA 110 B 2 .. BB 3 ... BBB 3 D F 3 D D
AA 120 D 2 .. FF 3 ... FFF 3 D F 3 D D
Atualização para tabulação delimitada
sed '/\t0\t/d' infile > newfile
No entanto, este é mais seguro:
sed '/\b0\b/d' infile > newfile
Tags text-processing