O GNU grep
aceita \|
como um operador OR em expressões regulares, portanto você pode usar
grep '^xen\|\.rpm$'
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.
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.