grep várias strings de uma vez na ocorrência específica

2

Eu gostaria de grep da seguinte string na ordem exata.

x*/\*y\*/\*z\*/\*w\*

como posso fazer isso?

grep x*/\*y\*/\*z\*/\*w\* <file> - > não funciona

Exemplo de entrada

xvg/cyv/dgzfdre/rwt 
avg/cyv/dgzfdre/rwt 
x/y/z/w 

Saída desejada

xvg/cyv/dgzfdre/rwt 
x/y/z/w 
    
por Dor 23.03.2017 / 22:22

2 respostas

1

Isso alcança o que você parece exigir.

$ cat testfile
xvg/cyv/dgzfdre/rwt
avg/cyv/dgzfdre/rwt
x/y/z/w
$ grep 'x.*/.*y.*/.*z.*/.*w' testfile
xvg/cyv/dgzfdre/rwt
x/y/z/w
$

Seu grep x*/\*y\*/\*z\*/\*w\* <file> não funciona, pois está procurando zero ou mais x caracteres seguidos por / , seguido por * caracteres, seguidos imediatamente por y caractere [etc].

    
por 23.03.2017 / 23:17
0

* s são caracteres mágicos em expressões regulares que significam "zero ou mais do item anterior". Você precisa escapar deles:

grep 'x\*/\*y\*/\*z\*/\*w\*' /path/to/file
    
por 23.03.2017 / 22:37