Como quebrar um padrão de pesquisa grep regex

2

Estou usando uma pesquisa grep regex em um script bash, que contém muitos termos de pesquisa.

some commands \
 | grep -E 'search1|search2|search3|search4|search5|search6|search7|search8|search9|search10'

é possível quebrar este comando para torná-lo mais legível?

então ficaria assim:

some commands \
 | grep -E 'search1|search2|search3|search4|search5|\
            search6|search7|search8|search9|search10'
    
por nath 03.12.2017 / 01:23

2 respostas

3

Consulte a opção -e

some commands \
 | grep -E -e 'search1|search2|search3|search4|search5' \
           -e 'search6|search7|search8|search9|search10' \
           -e ...\
           -e ...  
    
por 03.12.2017 / 01:32
1

Se um padrão é dividido em linhas, o grep trata cada linha como um padrão separado e independente. Assim, uma solução é:

command | grep -E 'search1|search2|search3|search4|search5
search6|search7|search8|search9|search10'

Não há | no final da primeira linha, senão ela será interpretada como ou emptyspace e grep pensa que o espaço vazio corresponde a tudo. Também não coloque um espaço no início da linha de continuação, senão o espaço está incluído no padrão.

    
por 03.12.2017 / 01:33