Filtrando a saída pela condição OR no Linux

0

existe alguma maneira de filtrar a saída do comando pela condição OR no Linux?
Há filtragem por condição AND com grep de maneira semelhante a:

ls -l | grep "^a" | grep "z$"

Isso diz: listar todos os arquivos que começam com "a" AND termina com "z" (então existe uma maneira mais curta de escrever isto: grep "^ a \. * z $", mas não importa). br> Existe alguma maneira de realizar o teste por condição OR?
Por exemplo: arquivos que começam exatamente com "xen" OU arquivos que terminam exatamente com ".rpm". Mas exatamente, não algo como:

grep "[xen]{0,3}\.*[.rpm]{0,4}"

Obrigado pela frente.

    
por Rodnower 13.08.2010 / 18:06

2 respostas

4

O GNU grep aceita \| como um operador OR em expressões regulares, portanto você pode usar

grep '^xen\|\.rpm$'
    
por 13.08.2010 / 18:44
5

Você pode usar egrep (que é um alias para grep -E ) para usar expressões regulares estendidas no padrão de pesquisa como este:

egrep '^xen|\.rpm$'

Observe que [xen]{0,3} significa: Procure uma string que tenha um comprimento entre 0 e 3 e que seja composta de qualquer combinação dos caracteres x, e e n.

    
por 13.08.2010 / 18:19

Tags