0

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

4

3 回答 3

3

你需要转义 [ ] 标志,使用这个:

grep -Rn "\$foo\['bar'\]" /lib

请注意,在这种情况下,不需要转义初始美元符号,但我发现这样更清楚。

于 2012-10-15T09:52:41.703 回答
2

试试这个代码:

 grep -Rn "$foo\['bar'\]"

为我工作

于 2012-10-15T09:48:13.577 回答
0
On sh/bash: grep -Rn "$foo\['bar'\]" /lib
On csh/tcsh: grep -Rn ""\$foo"\['bar'\]" /lib
于 2012-10-15T15:00:27.770 回答