我想在命令$foo['bar']
中找到目录中的字符串grep -Rn
。但无论我尝试什么,我都无法找出使用什么来避免正则表达式。
user@server$ grep -Rn $foo['bar'] /lib // obviously don't work
user@server$ grep -Rn "$foo['bar']" /lib // don't work
user@server$ grep -Rn `$foo['bar']` /lib // don't work
user@server$ grep -Rn $foo\['bar'\] /lib // don't work
我必须使用grep -Rn
命令,而不是另一个命令。非常感谢!
答案 0 :(得分:3)
你需要逃避[]标志,使用它:
grep -Rn "\$foo\['bar'\]" /lib
请注意,在这种情况下,避免使用初始美元符号是不必要的,但我发现它更清晰。
答案 1 :(得分:2)
试试这段代码:
grep -Rn "$foo\['bar'\]"
适合我
答案 2 :(得分:0)
On sh/bash: grep -Rn "$foo\['bar'\]" /lib
On csh/tcsh: grep -Rn ""\$foo"\['bar'\]" /lib