Kun unixeissa pitää etsiä neula tekstimuotoisen datan heinäsuovasta, käytetään yleensä grep-komentoa. Jos tekstirivi täsmää annettuun hakuparametriin tulostetaan se oletustulostevirtaan (stdout). Grepin kanssa voidaan käyttää hakuparametreina yksinkertaisten merkkijonojen lisäksi säännöllisiä lausekkeita ja käyttää vaikka mitä muita hienoja kikkoja.
Powershellissä ei (ilmeisesti) ole mitään näin hienoa työkalua, mutta onneksi tekstimassasta saa useimmiten seulottua esille oleellisen Select-Stringin merkkijonohaulla. Esimerkiksi Windowsissa on oletuksena palomuurisääntöjä niin valtavat määrät, että niiden kaikkien läpikäynti jonkin tietyn säännön löytämiseksi on hullun hommaa. Hommaa voi helpottaa Select-Stringillä:
PS> netsh advfirewall firewall show rule name="all"|Select-String ssh Rule Name: SSHD Port OpenSSH (chocolatey package: openssh) Rule Name: sshd
Select-Stringillä voidaan näyttää myös osumia edeltävät ja seuraavat rivit -Context -parametrilla:
$ netsh advfirewall firewall show rule name="all"|Select-String -Context 5 ssh > Rule Name: SSHD Port OpenSSH (chocolatey package: openssh) ---------------------------------------------------------------------- Enabled: Yes Direction: In Profiles: Domain,Private,Public Grouping: LocalPort: 22 RemotePort: Any Edge traversal: No Action: Allow > Rule Name: sshd ---------------------------------------------------------------------- Enabled: Yes Direction: In Profiles: Domain,Private,Public
Edellinen Select-String -komento on siis käytännössä sama kuin Linuxissa grep -A 5 -B 5, jossa -A tarkoittaa "after" ja -B "before".