Pourquoi les crochets d'un grep
modèle suppriment-ils le processus grep des ps
résultats?
$ ps -ef | grep XXXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep [X]XXX
[...] XXXX
Pourquoi les crochets d'un grep
modèle suppriment-ils le processus grep des ps
résultats?
$ ps -ef | grep XXXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep [X]XXX
[...] XXXX
Réponses:
Lorsque vous exécutez ps -ef | grep string
, grep s'affiche dans la sortie car string
correspond [...] grep string
.
Mais, lorsque vous exécutez ps -ef | grep [s]tring
la ligne ne s'affiche pas, car grep se traduit [s]tring
par string
, tandis que ps génère [...] grep [s]tring
, et cela ne correspond passtring
[]
représente l'un des jeux de caractères entre parenthèses dont, dans ce cas, "s" est le seul ...
Parce que les crochets doivent être échappés, pour bash une fois et pour grep à nouveau:
$ ps -ef | grep \\[X\\]XXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep "\[X\]XXX"
[...] XXXX
[...] grep XXXX