GREP mostra linhas que contêm isso, mas não que

1

Eu gostaria de pesquisar as linhas que contêm "upload", mas não contêm "09"

Existe uma maneira de fazer isso com o grep?

(CentOS 5.6 se for importante).

    
por JT White 10.01.2012 / 23:13

4 respostas

7

Eu costumo fazer correntes para isso.

grep uploaded $file | grep -v 09
    
por 10.01.2012 / 23:19
4

Você pode usar a opção -v para grep para inverter o jogo, então

grep uploaded file | grep -v 09

fará o que você quiser. Isto encontra as linhas que contêm upload que são passadas em um comando grep para ignorar linhas com 09 nelas.

    
por 10.01.2012 / 23:20
4

Isso não está usando grep - mas sempre que preciso de mais do que um grep básico, eu ligo para o meu favorito, sed . Certamente sempre que eu tiver que encadear os comandos grep juntos ...

Use este comando para fazer isso:

sed -n '/09/d; /uploaded/p' file

Apenas um único comando (não dois).

    
por 10.01.2012 / 23:38
2

Tente simplesmente:

( grep -v 09 | grep uploaded ) < file

Exemplo:

$ cat file
1 uploaded 09
2 09
3 uploaded
4 text
$ ( grep -v 09 | grep uploaded ) < file
3 uploaded
    
por 11.01.2012 / 00:00