Почему скобки в grep
шаблоне удаляют процесс grep из ps
результатов?
$ ps -ef | grep XXXX
[...] XXXX
[...] grep XXXX
$ ps -ef | grep [X]XXX
[...] XXXX
command-line
grep
ps
Жиль "ТАК - перестань быть злым"
источник
источник
Ответы:
Когда вы запускаете
ps -ef | grep string
, grep отображается в выводе, потому чтоstring
совпадает[...] grep string
.Но, когда вы запускаете,
ps -ef | grep [s]tring
строка не отображается, потому что grep переводит[s]tring
вstring
, а ps выводит[...] grep [s]tring
, и это не совпадаетstring
источник
[]
представляет собой любой из набора символов, в скобках которого, в данном случае, "s" является единственным ...Поскольку скобки нужно экранировать, для bash один раз и для grep снова:
источник