Como inserir novas linhas no PATTERN ao usar fgrep / grep -F / grep --fixed-strings

7

Ao usar o fgrep, a página man diz que será

Interpret PATTERN as a list of fixed strings, separated by newlines, any of which is to be matched.

No bash, qual é a maneira correta de inserir novas linhas no argumento PATTERN (ou seja, de forma que ele combine com qualquer uma das linhas de acordo com a página man).

Eu tentei o seguinte sem sorte:

fgrep word1\nword2
fgrep word1\rword2
fgrep "word1\nword2"
fgrep "word1\rword2"

Eu gostaria que o comando estivesse em uma linha, se possível.

    
por sa289 13.01.2016 / 23:58

2 respostas

7

Isso pode ser feito usando a sintaxe $'\n' (consulte link ). Então, por exemplo:

fgrep word1$'\n'word2

Ou você pode envolver todo o PATTERN dessa maneira (crédito don_crissti)

fgrep $'word1\nword2\nword3'
    
por 14.01.2016 / 00:18
5
grep -F 'word1
word2' infile

ou, se você preferir em uma linha:

grep -F -e 'word1' -e 'word2' infile
    
por 14.01.2016 / 00:07