alphasec
Bash / Unix protip 007a
in 𝕏

ps uax | grep [p]wsh - odnajdź wśród procesów tekst pwsh, jednak pomiń proces z grepem

tty1 · bash
$ ps uax | grep [p]wsh
#Linux#MacOS#BlueTeam#ProzaZycia

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.

ps uax | grep [p]wsh - odnajdź wśród procesów tekst pwsh, jednak pomiń proces z grepem
← poprzedni protip 0079 ••• Wszystkie protipy następny → protip 007b
// subskrybuj

Nowe protipy prosto na maila.

Mięsiste jednolinijkowce i triki z prawdziwych zleceń. Zero spamu, zero teorii. Wypisujesz się jednym kliknięciem.

wersja newslettera: