grep - dlaczego nawiasy kwadratowe we wzorze grep usuwają proces grep z wyników ps?


Odpowiedzi:


20

Po uruchomieniu ps -ef | grep stringgrep jest wyświetlany na wyjściu, ponieważ stringpasuje [...] grep string.

Ale po uruchomieniu ps -ef | grep [s]tringlinii nie jest wyświetlany, ponieważ grep przekłada [s]tringsię string, natomiast wyjścia ps [...] grep [s]tring, i że nie pasujestring


1
... ponieważ []reprezentuje dowolny zestaw znaków w nawiasach, w tym przypadku „s” jest jedynym…
Wstrzymany do odwołania.

tak ... naprawdę miałem problem z wyjaśnieniem tego po angielsku ... to nie jest mój pierwszy język :)
Stefan

2

Ponieważ nawiasy klamrowe muszą być poprzedzone znakiem ucieczki, dla bash raz i dla grep:

$ ps -ef | grep \\[X\\]XXX

[...] XXXX
[...] grep XXXX


$ ps -ef | grep "\[X\]XXX"

[...] XXXX
[...] grep XXXX
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.