Como grep para pipe |

10

Como posso grep para a linha que contém o caractere de pipe | ou para o caractere > :

files content:
|this is test
where is >
this is none

agora o que eu preciso usando o comando grep é

grep -iE "<some expression>" file_name

Saída:

|this is test
where is >
    
por Özzesh 19.08.2013 / 12:50

4 respostas

7

Com a sintaxe grep padrão:

grep '[>|]'

ou

grep -e '>' -e '|'

ou

grep '>
|'

ou

grep -E '>|\|'
    
por 19.08.2013 / 15:53
6

Se você estiver usando o GNU grep, poderá fazê-lo com o operador ou ( | ), que deve ter escape (precedido por uma barra invertida \ ). Então, para encontrar linhas contendo um pipe ou um sinal de maior que, incluí-las literalmente com o operador ou :

grep '|\|>' infile

Saída:

|this is test
where is >
    
por 19.08.2013 / 12:53
1

Usando a expressão de colchetes para corresponder a um dos caracteres desejados:

grep "[|>]" infile

Saída:

|this is test
where is >
    
por 19.08.2013 / 13:00
0

A maneira correta de realizá-lo é usando o flag -e, que é especificado pelo POSIX. Por exemplo:

grep -e '>\||' infile
    
por 19.08.2013 / 13:03