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 に答える