ps uax | grep [p]wsh - odnajdź wśród procesów tekst pwsh, jednak pomiń proces z grepem
Taka konstrukcja jest zupełnie często wykorzystywana w praktyce, warto więc wiedzieć dokładnie co się dzieje.
Zakładając, że szukamy procesu, w którym występuje tekst pwsh, jeśli napiszemy po prostu
ps uax | grep pwsh
zostanie znaleziony zarówno potencjalnie szukany proces, jak i nasz proces z grepem, ponieważ też zawiera tekst pwsh.
Oczywiście moglibyśmy przekierować wszystko do kolejnego grepa z parametrem -v, który znajdzie wszystkie linie niepasujące do wzorca, czyli:
ps aux | grep pwsh | grep -v grep
Wystarczy jednak skorzystać z małego tricku i napisać:
ps uax | grep [p]wsh
Spowoduje to, że do grepa jako wyszukiwany string trafi napis [p]wsh, który następnie grep potraktuje jako zakres (podany w []) złożony z jednego znaku ( p), po którym wystąpią znaki wsh czyli nasze pwsh.