Il comando Findstr su Windows è utile per la ricerca di pattern di testo specifici nei file. La sua funzionalità è simile al comando grep sul sistema operativo Linux. Puoi trovare sotto la sintassi di ‘findstr’ per vari casi d’uso.
Cerca testo/stringa in un file:
findstr pattern filename
Ad esempio, per cercare la stringa ‘Windows’ nel file di testo CLItips.txt, il comando sarebbe come di seguito.
findstr Windows CLItips.txt
Si noti che il comando precedente cerca esattamente ‘Windows’., Considera caso per impostazione predefinita. Quindi, se hai una riga che ha la parola ‘windows’, non verrà stampata nell’output del comando precedente.
Ignora caso di testo:
È possibile aggiungere / I passare a ignorare il caso nella ricerca. Quindi, se si esegue ‘ findstr windows / I CLItips.txt’, fa la corrispondenza del modello senza distinzione tra maiuscole e minuscole.
Cerca una qualsiasi delle parole date
Se vuoi stampare le righe con una qualsiasi delle parole date, puoi racchiudere l’elenco delle parole tra virgolette nel comando findstr.,
findstr "word1 word2 word3.." filename.txt
findstr "Apple Orange" fruits.txt
Questo comando stampa una riga se ha la parola ‘Apple’ o la parola ‘Orange’ o entrambe le parole.
Cerca pattern con più parole
findstr /C:"word1 word2 word3..." filename
/ C indica che il pattern di ricerca deve essere abbinato letteralmente.
Ad esempio, per cercare la stringa “Apple Ball Cat” nel file Book.txt, il comando sarebbe il seguente
findstr /C:"Apple Ball Cat" Book.txt
Cerca con espressioni regolari
Puoi usare espressioni regolari con findstr / R switch. Il comando tipico sarebbe il seguente.,
findstr /R pattern filename.txt
Qui il modello può essere specificato usando espressioni regolari.
Esempi:
Cerca l’occorrenza di tutte le parole che terminano con ‘xyz’ in un file.
findstr /R *xyz filename.txt
Cerca il testo in tutti i file in una directory corrente
Puoi usare il carattere jolly ‘*” per specificare che tutti i file in una directory devono essere cercati per la stringa specificata.
Ad esempio, per cercare ‘windows’ in tutti i file nella directory corrente, è possibile utilizzare il comando seguente.,
findstr /I windows *
Per cercare tutti i file di testo nella directory C:\data:
findstr /I windows C:\data\*.txt
Cerca più stringhe
Se hai bisogno di cercare più stringhe, puoi farlo con lo script batch sottostante.
@echo offfor /F %%i in (pattern.txt) do (echo Files containing %%ifindstr /M /C:%%i /S *.txt)
‘pattern.txt ‘ è il file con le stringhe (una per riga) che devono essere cercate. Il comando precedente cerca solo file di testo. È possibile personalizzare il comando findstr nello script per cercare nei file con altre estensioni. L’aggiunta dell’opzione ‘/ M ‘ al comando causa la stampa solo dei nomi dei file.,
Stampa solo le righe in cui la stringa data si trova all’inizio della riga.
È possibile aggiungere /B interruttore per indicare che la stringa specificata deve essere all’inizio della riga.
findstr /B /C:windows CLItips.txt
Stampa solo le righe in cui la stringa data si trova alla fine della riga
findstr /E /C:windows CLItips.txt
Stampa i numeri di riga per tutte le righe corrispondenti.
È possibile aggiungere /N switch al comando findstr per stampare i numeri di riga per le linee corrispondenti.
Stampa solo i nomi dei file
finstr /M /C:"pattern" *.log
Questo comando cerca il pattern in all *.,file di registro, e quindi stampa solo i nomi dei file con il modello. Anche se un file ha più occorrenze del modello, viene stampato solo una volta da findstr.