Nezasvěceným se může nástroj pro vyhledávání vzorů jako findstr zdát zbytečný. Ale když se zabýváte systémem generovaným log soubory nebo výstupy příkazového řádku obsahujícími stovky řádků textu, findstr je právě ten nástroj, který potřebujete.
Uživatelé operačního systému Linux by již byli obeznámeni s neuvěřitelnou utilitkou příkazu Grep a findstr plní podobnou roli v Microsoft Windows. Můžete jej zkombinovat s další příkazy pomocí potrubí nebo jej jednoduše spustit přímo a analyzovat více textových souborů. Podívejme se na několik příkladů, jak findstr funguje.
Použití příkazu Findstr
Základní syntaxe je jednoduchá – findstr <řetězec>
findstr SFC example1.txt
Tento příkaz najde a vypíše všechny řádky obsahující hledaný řetězec SFC. Upozorňujeme, že parametr findstr ve výchozím nastavení rozlišuje malá a velká písmena, takže žádné zmínky o SFC nebudou odpovídat.
Parametry
Funkci findstr můžete dále přizpůsobit přidáním volitelných parametrů. Přepínače jako /B nebo /I upravují chování findstr a ukládají další podmínky pro vyhledávání. Například:
findstr /I SFC example1.txt
Zahrnutím /I jako parametru se nerozlišují malá a velká písmena, což umožňuje shodu všech zmínek o výrazu bez ohledu na jejich velká a malá písmena. Seznam všech parametrů findstr najdete v oficiální dokumenty Microsoftu.
Volitelné vzory
Parametry nejsou jediným způsobem, jak přizpůsobit findstr. Uzavření
findstr „SFC DISM“ example1.txt
Výše uvedené vrátí odpovídající řádky obsahující některý z výrazů. To je užitečné při hledání zmínky o položce s různými názvy.
Regulární výrazy
Findstr je schopen prohledávat více souborů. Změna
findstr SFC *.txt
Použití zástupného znaku odpovídá regulárnímu výrazu všem textovým souborům v aktuálním adresáři a jeho podadresářích. Výsledky jsou rovněž rozděleny podle názvů souborů, takže můžete vidět, který řádek pochází z kterého souboru.
Potrubí
Jako většinu příkazů cmd lze findstr použít také na výstup jiných příkazů. Stačí přidat rouru za konec cílového příkazu a vyvolat findstr bez
dir | findstr .txt
To spustí hledání findstr na výstupu příkazu dir a vrátí seznam souborů končící příponou .txt. Tento konkrétní příklad je samozřejmě v praxi k ničemu, protože dir již umí najít soubory stejného typu s regulárním výrazem.
Můžete také použít delší cestu přesměrování výstupu do textového souboru a poté použít findstr na textovém souboru, ale je jednodušší přerušit prostředníka.
Aplikace Findstr ve Windows
Samozřejmé použití findstr je zřejmé již ze samotné syntaxe. Můžete hledat textové soubory se specifickým textovým řetězcem nebo zjistit, zda je konkrétní řetězec obsažen v souboru.
Toto, i když je teoreticky užitečné, se zřídkakdy používá mimo ojedinělé případy. V době cloudových služeb, jako jsou Dokumenty Google, už většina lidí nemá mnoho textových souborů.
Skutečné aplikace findstr jsou o něco jemnější a zahrnují výkonnější výsledky. Zde jsou některé ze zajímavějších příkladů.
Nalezení konkrétních typů souborů
Příkaz dir již obsahuje možnost vyhledávat názvy souborů pomocí regulárních výrazů. Ale pomocí findstr můžete hledat soubory sdílející další atributy, jako je čas nebo datum vytvoření.
Předpokládejme, že v 18:43 došlo k chybě a vy chcete najít všechny soubory protokolu vytvořené v té době. Pouze pomocí příkazu dir budete muset ručně procházet výsledky nebo získat všechny soubory protokolu a porovnat je. Pomocí findstr se z toho stane jednoduchý příkaz.
dir | findstr 06:43
Stejný trik můžete zkusit najít soubory vytvořené v určité datum nebo získat seznam adresářů.
dir | findstr DIR
Filtrování síťových informací pomocí Netstatu.
Netstat je užitečný příkaz systému Windows, který vám poskytuje všechny informace o síťových připojeních vašeho počítače – příliš mnoho informací, což je místo, kde přichází na řadu findstr.
Propojení výstupu netstat do findstr vám umožní hledat spojení s konkrétními vlastnostmi. Takto můžete například získat seznam všech navázaných připojení.
netstat | findstr ZALOŽENO
Tento trik je užitečný při diagnostice problémů se sítí. Můžete dokonce použít findstr s PID aplikace k nalezení všech připojení otevřených konkrétním procesem.
netstat -o | findstr 13120
Získání konkrétních IP adres
Příkaz ipconfig umožňuje zobrazit podrobnosti o všech síťových rozhraních systémů, včetně IP adres. Pomocí findstr můžete extrahovat konkrétní typ IP adresy, aniž byste museli procházet celou věcí.
ipconfig | findstr Dočasné
Tuto metodu můžete rozšířit o získání jakýchkoli informací z ipconfig, od masek podsítě až po adresy bran.
Analýza souborů skriptů
Bez ohledu na programovací jazyk, ve kterém kódujete, soubory skriptů jsou nakonec pouze text. To znamená, že můžete použít findstr k analýze skriptů a načtení konkrétních sekcí, aniž byste museli procházet celý kód.
Řekněme, že chceme vidět, jak byl v konkrétním skriptu použit příkaz if. Můžeme použít následující příkaz:
findstr if script.ahk
Nejenže to zobrazí řádky pomocí příkazu if, ale také nám ukáže použité výrazy. Můžete také zahrnout parametr /N pro zobrazení čísel řádků, což je velmi užitečné pro soubory skriptů.
findstr /N if script.ahk
Vyplatí se Findstr používat?
Hlavním problémem při navigaci v rozhraní příkazového řádku je množství textu, které je potřeba prosít. Findstr je základní nástroj pro extrakci užitečných informací a filtrování nevyžádané pošty.
Vzhledem k tomu, že všechny příkazy terminálu poskytují textový výstup, lze k vyhledání příslušných dat vždy použít findstr. Od řešení problémů se sítí až po nalezení správných souborů je každá akce efektivnější pomocí findstr..
I mimo svou synergii s jinými příkazy je findstr užitečný pro svou schopnost procházet obsah textových souborů. Konkrétní chyby můžete najít ve strojově generovaných souborech protokolu nebo načíst části kódu ve složitém skriptu.
Stručně řečeno, findstr je nepostradatelným nástrojem v arzenálu každého pokročilého uživatele Windows, zejména toho, kdo se chce seznámit s rozhraním příkazového řádku.
.