次の2つのファイルがあります。
$ cat in1.lst
foo.pdf
bar.pdf
$ cat in2.lst
foo.pdf
bar\355xyz.pdf
次のgrep
コマンドは最初のコマンドには機能しますが、2番目のコマンドには機能しません。
$ 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