Jak korzystać z Findstr: przykłady i wskazówki dotyczące efektywnego wyszukiwania za pomocą tego poręcznego narzędzia CMD



Szczerze mówiąc, findstr na pierwszy rzut oka może wydawać się całkiem bezużyteczny – to po prostu kolejne narzędzie wiersza poleceń, które wygląda, jakby utknęło w erze Windowsa. Ale kiedy zagłębisz się w logi, konfiguracje lub po prostu próbujesz przekopać się przez tysiące wierszy wyników, nagle staje się Twoim najlepszym przyjacielem. Zwłaszcza jeśli jesteś przyzwyczajony do grepa z Linuksa, findstr w pewnym sensie spełnia tę rolę w Windowsie, nawet jeśli jest nieco bardziej toporny. Sztuką jest wiedzieć, jak sprawić, by działał tak, jak chcesz, bez wyrywania sobie włosów z głowy.

Zazwyczaj najlepiej uruchamiać go z poziomu wiersza poleceń. Znajdziesz go w menu Start > System Windows > Wiersz poleceń. Upewnij się, że uruchamiasz go jako administrator, jeśli przeszukujesz pliki systemowe lub logi wymagające rozszerzonych uprawnień. Pamiętaj również, że polecenie findstr domyślnie rozróżnia wielkość liter, co może zaoszczędzić trochę zamieszania — więc dodanie parametru /I często jest dobrym pomysłem, chyba że masz precyzję co do wielkości liter. I tak, dobrze współpracuje z potokami i symbolami wieloznacznymi, dzięki czemu możesz łączyć polecenia w łańcuchy lub przeszukiwać wiele plików. I tu zaczyna się robić ciekawie.

Korzystanie z polecenia Findstr

Jak to działa i dlaczego to ma znaczenie

Podstawowy układ to findstr <pattern> <file(s)>. Jeśli więc chcesz znaleźć wszystkie wiersze z „SFC” w pliku o nazwie example1.txt, po prostu wpisz: findstr SFC example1.txt. W niektórych konfiguracjach zobaczysz, że program po prostu zwraca wiersze z dopasowaniem. Proste, prawda? Ale czasami nie znajduje tego, czego się spodziewasz, ponieważ domyślnie rozróżnia wielkość liter. Właśnie wtedy przydaje się przełącznik /I.

Naprawiono uwzględnianie wielkości liter — dlaczego to pomaga

  • Ta zmiana powoduje, że polecenie findstr ignoruje różnice w wielkości liter, więc polecenie będzie wyglądać następująco findstr /I SFC example1.txt:
  • Przydatne, gdy logi lub dane wyjściowe mają niespójną kapitalizację. Zwłaszcza, że ​​logi bywają nieprzewidywalne — czasami pojawiają się same wielkie litery, a czasami małe.
  • Możesz spodziewać się wszystkich wyników bez względu na wielkość liter, co oszczędzi Ci sporo czasu na ręcznym skanowaniu.

Na niektórych komputerach trzeba uruchomić polecenie dwa razy lub ponownie uruchomić wiersz poleceń, aby za pierwszym razem zadziałało, ale zazwyczaj potem wszystko działa.

Przeszukaj wiele wzorców jednocześnie

Chcesz znaleźć coś z „SFC” lub „DISM”? Wystarczy umieścić je w cudzysłowie, rozdzielając spacją: findstr “SFC DISM” example1.txt. W ten sposób pojawią się wiersze zawierające oba te terminy. Przydatne przy rozwiązywaniu problemów, gdy różne komunikaty dziennika odnoszą się do tego samego procesu pod nieco innymi nazwami.

Używanie symboli wieloznacznych i wyrażeń regularnych — czego możesz nie być świadomy

Oczywiście, możesz przeszukiwać wiele plików za pomocą symboli wieloznacznych, takich jak findstr SFC *.txt. Sprawdza to każdy plik tekstowy w bieżącym katalogu, wyświetlając nazwę pliku dla każdego dopasowania. Jeśli chcesz przeszukać dokładniej, możesz połączyć to z poleceniem dir /s, aby rekurencyjnie przeszukiwać podkatalogi.

Chcesz przeszukiwać wiele typów plików? Wystarczy zmienić symbol wieloznaczny: *.log *.cfg. Może to być nieporęczne, ale sprawdza się podczas rozwiązywania problemów z aplikacją.

Łączenie rur łańcuchami — dlaczego to zmienia zasady gry

Jeśli uruchomisz polecenie takie jak dir, możesz przekazać jego wynik do findstr. Na przykład: dir | findstr.txt. W większości przypadków nie jest to zbyt praktyczne, ale przydaje się do filtrowania wyników — na przykład zawężania listy plików z dużego katalogu.

Widziałem, że jedna sztuczka działa dobrze: przekieruj dane wyjściowe do pliku tekstowego, a następnie przeszukaj ten plik, np.dir > files.txtthen findstr target_pattern files.txt. Mimo to, pominięcie kroków pośrednich oszczędza czas.

Praktyczne poprawki i wskazówki dotyczące systemu Windows

Szybkie poprawki przy użyciu findstr do rozwiązywania problemów systemowych

  • Jeśli próbujesz zlokalizować konkretne komunikaty o błędach w dziennikach zdarzeń lub raportach systemowych, uruchom polecenie findstr “error” C:\Windows\Logs\*.log. W niektórych konfiguracjach jest to najszybszy sposób na wykrycie powtarzających się problemów.
  • Potoki świetnie sprawdzają się w filtrowaniu informacji o sieci. Na przykład netstat -an | findstr ESTABLISHEDpokazują wszystkie aktywne połączenia TCP. Przydatne podczas rozwiązywania problemów z zawieszaniem się sieci lub wykrywaniu podejrzanej aktywności.
  • Podobnie, jeśli chcesz wybrać konkretny adres IP lub port, po prostu wpisz: netstat -a | findstr 192.168. Oczywiście Windows lubi utrudniać to bardziej niż to konieczne.

Wyodrębnianie informacji z konfiguracji i skryptów

Przeglądasz skrypt lub plik konfiguracyjny i chcesz zobaczyć tylko wiersze z „if”? Po prostu uruchom findstr if script.ahk. Chcesz numerów wierszy? Dodaj /N. W ten sposób: findstr /N if script.ahk. Dzięki temu nie będziesz musiał przewijać stron kodu, zwłaszcza podczas przeglądania złożonych skryptów lub logów.

Kiedy findstr może się nie powieść lub dać dziwne wyniki

Uważaj na znaki specjalne i symbole wieloznaczne — findstr nie obsługuje idealnie wszystkich wyrażeń regularnych ani symboli specjalnych. Czasami, jeśli wzorce są skomplikowane, nie otrzymasz żadnego wyniku lub nie znajdziesz pasujących wyników. Nie radzi sobie też dobrze z plikami binarnymi — dla uzyskania najlepszych rezultatów trzymaj się plików tekstowych.

Ostatecznie findstr nie jest olśniewający, ale okazuje się zaskakująco potężny, gdy już się go opanuje. Pozwala skrócić godziny ręcznego wyszukiwania do kilku poleceń w terminalu, zwłaszcza gdy pulpity nawigacyjne lub logi są w chaosie. Biorąc pod uwagę jego wszechstronność w zakresie potoków, symboli wieloznacznych i różnych przełączników, zdecydowanie warto o nim pamiętać.

Streszczenie

  • Uruchom, findstr /I <pattern> <file>aby zignorować wielkość liter.
  • Użyj symboli wieloznacznych, *aby przeszukiwać wiele plików jednocześnie.
  • Przekieruj dane wyjściowe z poleceń takich jak dirlub netstatdo findstr w celu filtrowania.
  • Podczas analizy skryptów lub logów dodaj /N w celu numerowania wierszy.
  • Zachowaj ostrożność przy używaniu znaków specjalnych — findstr nie radzi sobie idealnie z wyrażeniami regularnymi.

Podsumowanie

Szczerze mówiąc, findstr nie jest dla każdego, ale gdy już się w nim odnajdzie, może zaoszczędzić mnóstwo czasu. Niezależnie od tego, czy przeszukujesz logi, rozwiązujesz problemy z siecią, czy po prostu próbujesz znaleźć dziwne ustawienie w ogromnym pliku konfiguracyjnym, to narzędzie, które warto znać. Pamiętaj tylko, że jest trochę dziwaczne, ale kiedy działa, to naprawdę działa. Oby to komuś pomogło opanować pracę detektywa wiersza poleceń w systemie Windows.



Czy ten artykuł był pomocny?