grep + pesquisa sintaxe complexa recursiva sob pasta em arquivos / scripts

0

Queremos pesquisar a seguinte linha recursiva na pasta / s

awk '{print}'|grep -i -e 'port is up' -e 'valid output'

então fizemos isso:

grep -r "awk '{print}'|grep -i -e 'port is up' -e 'valid output'"  /var
grep -r "awk '{print}'|grep -i -e 'port is up' -e 'valid output'"  /etc
grep -r "awk '{print}'|grep -i -e 'port is up' -e 'valid output'"  /opt

mas não tenho certeza se o grep conseguiu gerenciar os caracteres "'" e "{" ou talvez minha sintaxe esteja errada?

Por favor, informe como pesquisar a linha recursiva?

    
por yael 08.07.2018 / 20:31

1 resposta

1

Para procurar uma string fixa (não uma expressão regular), use a opção -F com grep . Se você também precisar garantir que sua string corresponda a uma linha inteira , use -x :

grep -Fx -r '...your string here...' directory

Para obter resultados aproximados (se uma pesquisa de linha completa não retornar nada), eu começaria com apenas port is up (sem -x ) ou possivelmente

grep -F -r -e 'port is up' -e 'valid output' directory

Nem | nem { ou } são especiais em um padrão de expressão regular quando você usa expressões regulares básicas como faz aqui. ' nunca é especial em uma expressão regular. No entanto, como você está pesquisando com uma string (não um padrão), você deve usar -F

.     
por 08.07.2018 / 20:46