如何忽略文件中的 grep 反向引用?

如何忽略文件中的 grep 反向引用?

我有以下两个文件:

$ cat in1.lst 
foo.pdf
bar.pdf
$ cat in2.lst 
foo.pdf
bar\355xyz.pdf

以下grep命令适用于第一个,但不适用于第二个:

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

在实际场景中,我有一个包含一长串 URL 的文件,其中一些包含\xxx字符串。我想运行grep并忽略反向引用的任何特殊含义。

通过参数加载文件时如何忽略反向引用的特殊含义-f


额外信息:

$ grep --version
grep (BSD grep) 2.5.1-FreeBSD
$ type grep
grep is aliased to `grep --color=auto'

答案1

-F应使用/参数--fixed-strings,它可以将模式解释为一组固定字符串(因此它强制grep表现为fgrep)。看:man grep

所以:

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

或者:

fgrep -f in2.lst /dev/null

相关内容