«

»

Apr 12

FINDSTR il grep di Windows per ricerca testo nei files

Su Unix, Linux e derivati esiste da sempre il potentissimo comando grep che permette di cercare una stringa di testo all’interno dei files, purtroppo grep non esiste nativamente in Windows ma il comando FINDSTR può essere considerato una valida alternativa e risulta molto utile in tutti quei casi in cui lavorando dal prompt dei comandi sia necessario fare ricerche di testo all’interno di molti files.

 

Per usare FINDSTR in Windows per la ricerca di testo all’interno dei files dovete prima aprire un prompt dei comandi (start -> esegui -> cmd.exe)  :

C:\>

qui potete digitare il comando

findstr /? | more

per avere un elenco completo della sintassi da usare, sono supportate anche le ricerche con espressioni regolari o con wildcards, vediamo comunque alcuni semplici esempi pratici del suo utilizzo.

 

findstr /i /s “failed” c:\logs\*.log

cerca la parola “failed” all’interno di tutti i files di log (*.log) presenti nella cartella c:\logs\ e nelle sotto-cartelle, nel nostro caso il risultato è :

c:\logs\20180627_backup.log:Failed to write file.
c:\logs\20190410_backup.log:Failed to write file.

viene quindi riportato il nome del file di log del backup dove è stata trovata la stringa di testo da ricercare e la stringa stessa, da notare che con il parametro /i abbiamo detto a findstr di ignorare maiuscole e minuscole ed infatti anche se cerchiamo “failed” troviamo Failed che ha la F maiuscola

 

findstr /i /s /b /n “failed” c:\logs\*log

in questo caso cerchiamo sempre la parola “failed” ma solo se è presente all’inizio della riga del nostro file, inoltre chiediamo anche il numero di riga in cui è stata trovata la parola all’interno del file, l’output quindi sarà :

c:\logs\20180627_backup.log:6:Failed to write file.
c:\logs\20190410_backup.log:7:Failed to write file.

 

findstr /i /s /c:”failed to write” c:\logs\*.log

cerca la stringa esatta “failed to write” all’interno di tutti i files di log

 

findstr /i /s “failed error warning” c:\logs\*.log

cerca le parole “failed” o “error” o “warning” all’interno di tutti i files di log

 

netstat | findstr /i “win10”

in questo esempio invece usiamo findstr per semplificarci la vita e filtrare il risultato del comando netstat con una redirezione  | (pipe) in modo da avere come risultato finale solo le connessioni verso una macchina che si chiama WIN10, nel nostro caso l’oitput sarà :

TCP 192.168.20.10:51794 WIN10:5900 ESTABLISHED

se non avessimo filtrato con findstr l’output di netstat sarebbe stato molto più lungo e difficile da leggere

 

Come vedete FINDSTR è un comando potente, flessibile e velocissimo che è molto utile quando stiamo lavorando da riga di comando ed abbiamo bisogno di fare ricerche veloci all’interno di files di testo oppure dobbiamo filtrare l’output di altri comandi, è insomma una valida alternativa al comando GREP che si trova normalmente su Linux.

Per la sintassi completa del comando FINDSTR potete anche fare riferimento a questa pagina web del supporto tecnico di Microsoft dove vengono riportate tutte le opzioni e fatti altri esempio di uso :

https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/findstr

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>