Como ignorar referências anteriores do grep do arquivo?

0

Eu tenho os dois arquivos a seguir:

$ cat in1.lst 
foo.pdf
bar.pdf
$ cat in2.lst 
foo.pdf
bar5xyz.pdf

O comando grep a seguir funciona para o primeiro, mas não para o segundo:

$ grep -f in1.lst /dev/null
$ grep -f in2.lst /dev/null 
grep: invalid backreference number

No cenário real, tenho um arquivo com uma longa lista de URLs e alguns deles têm \xxx strings. Gostaria de executar grep e ignorar qualquer significado especial para referências anteriores.

Como posso ignorar o significado especial de backreferences ao carregar o arquivo via -f parameter?

Informação extra:

$ grep --version
grep (BSD grep) 2.5.1-FreeBSD
$ type grep
grep is aliased to 'grep --color=auto'
    
por kenorb 18.07.2017 / 14:08

1 resposta

2

O parâmetro -F / --fixed-strings deve ser usado, o que pode interpretar padrões como um conjunto de sequências fixas (de modo que força grep a se comportar como fgrep ). Veja: man grep .

Então:

grep -F -f in2.lst /dev/null

ou:

fgrep -f in2.lst /dev/null
    
por 18.07.2017 / 14:08

Tags