Unix:用grep -Rn找到一个字符串

时间:2012-10-15 09:41:08

标签: regex unix grep

我想在命令$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命令,而不是另一个命令。非常感谢!

3 个答案:

答案 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