Você tem que escrever como:
egrep "^w.*\.pdf$" filename
- Os meios começaram com
w
seguido por qualquer caractere e terminaram em.pdf
.
para um "ou" lógico, você pode usar a opção -e
:
egrep -e pattern1 -e pattern2
significa todas as linhas com pattern1
ou pattern2
.
ou como @steeldriver sugerido, use regex estendido "ou":
egrep "(pattern1|pattern2)"
e, como você sabe, para expressões regulares estendidas, é necessário usar egrep
e não grep
, por exemplo:
egrep '(bbb|ccc)' # works fine for your file
grep '(bbb|ccc)' # doens't have any result
Para um "e" você precisa canalizar para outro egrep
:
grep pattern1 | grep pattern2
significa todas as linhas com pattern1
e pattern2
.
ou use outras ferramentas como awk
:
awk '/pattern1/ && /pattern2/' filename