Jak przechwycić linie zawierające konkretny tekst

Przy pracy na serwerach *nixowych przez SSH, korzystaniu z windowsowego wiersza poleceń lub PowerShella przydatna jest możliwość wyświetlenia linii zawierających konkretny ciąg znaków. Dzięki temu można łatwo znaleźć odpowiednie miejsce w pliku konfiguracyjnym lub filtrować pliki logów.

Chesz przetestować działanie poniższych instrukcji, a nie masz dostępu do serwera Linuxowego? Po rejestacji na DigitalOcean otrzymasz 100 dolarów do wykorzystania w ciągu 60 dni, a z przyjaznym interfejsem uruchomisz ulubioną dystrybucję w ciągu paru minut.

Aby lepiej pokazać możliwości poszczególnych systemów i powłok wyszukiwane będzie słowo zona (żona) z pliku ksiegaHenrykowska.txt zawierającego połamany tekst opisujący pierwsze zapisane polskie zdanie. Ciekawscy znajdą dodatkowe informacje na Wikipedii.

Na załączonych zrzutach ekranu w pierwszej kolejności wyświetlana jest zawartość wspomnianego pliku a później słowa zawierające słowo zona.

*nix

W systemach *nixowych najwygodniej skorzystać z poleceń more ścieżka_do_pliku | grep -n szukany_tekst które wypisze linie zawierające go razem z ich numerami. Właściwą komendą będzie more ~/ksiegaHenrykowska.txt | grep -n zona.

Wyświetlanie linii zawierających tekst pod *nixem

Windows

Wiersz Polecenia

Przy używaniu Wierzszu Polecenia właściwa komenda to more sciezka_do_pliku | findstr /n szukany_tekst i wyświetli ona wszystkie wystąpienia szukanego tekstu. Aby znaleźć zone wystarczy wywołać more ksiegaHenrykowska.txt | findstr /n zona.

Wyświetlanie linii zawierających tekst w Wierszu Poleceń

Microsoft PowerShell

Przy korzystaniu z PowerShella wystarczy użyć polecenia Select-String -Path ściezka_do_pliku szukany_tekst. Numery linii w których znaleziono tekst zostaną dodane automatycznie. Komendą PowerShella będzie Select-String -Path .\ksiegaHenrykowska.txt zona.

Wyświetlanie linii zawierających tekst w Windows PowerShell