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