Unix: trouve une chaîne avec grep -Rn

Je veux trouver la chaîne $foo['bar'] dans un répertoire, avec la commande grep -Rn . Mais peu importe ce que j’essaie, je ne peux pas savoir quel caractère utiliser pour éviter les regex.

 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 

Je dois utiliser la commande grep -Rn , pas une autre. Merci beaucoup !

Vous devez échapper aux signes [], utilisez ceci:

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

Notez que dans ce contexte, échapper au signe dollar initial n’est pas nécessaire, mais je trouve que cela est plus clair.

Essayez ce code:

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

travaille pour moi

 On sh/bash: grep -Rn "$foo\['bar'\]" /lib On csh/tcsh: grep -Rn ""\$foo"\['bar'\]" /lib