Stanco di utilizzare gli stessi vecchi strumenti di ricerca sul tuo computer, come grep? Perché accontentarsi? Molti equivalenti di grep in Windows possono aiutarti a cercare esattamente ciò che stai cercando.
In questo tutorial, imparerai come questi equivalenti di grep rendono possibile cercare attraverso i file più velocemente e trovare le informazioni di cui hai bisogno in un attimo.
Resta sintonizzato e stringi amicizia con potenti strumenti di ricerca!
Prerequisiti
Questo tutorial comprende dimostrazioni pratiche. Per seguire, assicurati di avere i seguenti elementi:
- A Window machine – This tutorial uses Windows 10 PC, but any version of Windows will suffice.
- PowerShell – Questo tutorial utilizza PowerShell 7.2.8.
- scoop – Questo tutorial utilizza scoop v0.3.1.
Trovare stringhe di testo specifiche (findstr
) all’interno dei file
Riuscire a individuare istantaneamente stringhe specifiche (con particolari pattern) all’interno di un file è di grande aiuto per il tuo flusso di lavoro. Ma come fare? Rivolgiti all’utilità findstr
della riga di comando di Windows, che ti consente di cercare stringhe di testo specifiche all’interno dei file.
Il comando findstr
è spesso utilizzato come equivalente di grep in Windows, poiché ha funzionalità simili al comando Unix grep
. Quali sono i vantaggi nell’uso di findstr
? Un esempio è che è integrato in qualsiasi sistema operativo Windows (OS) – non è richiesto alcun software aggiuntivo.
Per trovare stringhe specifiche in un file, segui questi passaggi:
Crea un file di testo con il tuo editor di testo preferito, chiamalo notes.txt, e popola il contenuto di seguito nel file.
Hello, world. This is an example of a text file.
I am writing some notes in this file.
Here are some keywords to search for: apple banana cherry.
Ora, apri PowerShell come amministratore e esegui il comando seguente per trovare le stringhe (findstr
) contro il modello di ricerca ("mela"
) nel file notes.txt
.
? findstr ha molti parametri che possono essere utilizzati per personalizzare la ricerca. Ma in questo tutorial, esplorerai alcuni dei parametri più preziosi quando si cercano stringhe nei file.

? Forse stai cercando stringhe in più file. In tal caso, specifica i percorsi dei file separati da spazi, come quello qui sotto:
parametri findstr "modello" "C:\\percorso\\a\\file1.txt" "C:\\percorso\\a\\file2.txt"
Trovare Stringhe che Corrispondono a un Modello Specifico o Letterale
Quando si lavora con i file di configurazione, trovare stringhe in un modello specifico o letterale è cruciale, specialmente nel debug. Fortunatamente, il parametro /c
indica al comando findstr
di cercare stringhe letterali che corrispondono a un modello specificato, inclusi eventuali spazi o caratteri speciali.
Aggiungere il parametro /c
al comando findstr
risulta utile nei seguenti, ma non limitati a:
- Ricerca di una frase specifica o di un insieme di parole che compaiono in un ordine particolare.
- Ricerca di una stringa che contiene spazi o caratteri speciali.
Per vedere come funziona il parametro /c
in azione, seguire questi passaggi:
1. Eseguire il comando findstr
qui sotto per cercare la stringa letterale (/c
) banana cherry
nel file *notes.txt*
.
Nell’output seguente, il comando findstr
restituisce solo le righe contenenti l’esatta stringa banana cherry
con uno spazio tra le due parole.
Ricordare che il parametro /c
è sensibile alle maiuscole e minuscole, quindi il comando findstr
restituisce solo la stringa con l’esatta lettera maiuscola o minuscola specificata. Se una qualsiasi delle stringhe nel file notes.txt non corrisponde al modello specificato, il comando findstr
restituisce un output vuoto.

2. Successivamente, aggiungere la seguente riga al file notes.txt, e salvare le modifiche.
In questo momento, nel tuo file notes.txt, dovrebbero esserci due righe con la stringa “hello”. Una tutta in minuscolo (hello, world.
), e un’altra con una ‘H’ maiuscola (Hello, world.
).
hello, world.
3. Ora, esegui ciascun comando qui sotto per cercare la stringa letterale hello, world
, o Hello, world
nel file notes.txt
.
Nota che nonostante ci siano due righe che contengono la stringa ‘hello, world’ nel file notes.txt, ottieni solo una riga di stringa.
Il parametro /c
dice al comando findstr
di stampare le righe che contengono la stringa ‘hello, world’ con sia minuscole che maiuscole ‘H’.

4. Infine, esegui il comando findstr
qui sotto per cercare le stringhe che contengono il modello hello
nel file notes.txt
ignorando (/i
) la distinzione tra maiuscole e minuscole.
Le ricerche sensibili alle maiuscole e minuscole funzionano bene se conosci già la corretta combinazione di lettere della stringa che stai cercando. Ma se desideri vedere tutte le righe di stringhe che corrispondono a un modello indipendentemente dalla combinazione di lettere, il parametro /i
farà il trucco.

Ricerca di stringhe specifiche all’interno di file e directory
Oltre alla ricerca di stringhe specifiche nei file, il comando findstr
ti permette di cercare stringhe corrispondenti all’interno di file, directory e sotto-directory.
Supponiamo che tu voglia trovare tutti i file in una directory che contengono una parola specifica nel loro contenuto. In tal caso, lascia che il parametro /s
faccia il lavoro sporco.
Esegui il comando sottostante per cercare (/s
) nella directory corrente e nelle sue sottodirectory (/s
) tutti i file (*.*
) che contengono la stringa system
, ignorando la maiuscola/minuscola (-i
)
Tieni presente che questo comando cerca solo i file che contengono la stringa system
come parola intera e non quelli che fanno parte di parole più grandi, come sistematico o sistemare.
L’output qui sotto mostra un elenco di nomi file, uno per riga, con il nome di ogni file che contiene la stringa ‘system’.

Ricerca di stringhe usando il cmdlet Select-String
Fino ad ora, hai visto che il comando findstr
funziona eccellentemente per trovare stringhe, ma il cmdlet Select-String
non è da trascurare. Questo cmdlet è un equivalente di grep
in Windows che ti permette di cercare modelli di testo specifici nei file e nelle stringhe.
Il cmdlet Select-String
è progettato per l’efficienza, consente di cercare rapidamente attraverso grandi quantità di testo e supporta le espressioni regolari (regex). A sua volta, questo cmdlet ti consente di cercare modelli ancora più complessi rispetto a findstr
.
Per vedere come funziona il cmdlet Select-String
, segui questi passaggi:
1. Apri prima il file notes.txt, aggiungi le seguenti righe e salva le modifiche.
Aggiungere queste righe è una preparazione per dimostrare come il cmdlet Select-String
gestisce le maiuscole nelle fasi successive.
Apple
APPLE
ApplE
2. Successivamente, esegui il seguente comando per cercare la stringa apple
nel file notes.txt
.
Qui sotto, diverse righe contengono la stringa ‘apple’ ma in diverse maiuscole poiché il cmdlet Select-String
è case-insensitive. Ma la cosa positiva è che puoi facilmente individuare e verificare le stringhe corrispondenti poiché sono evidenziate.

? Forse desideri utilizzare la semplice corrispondenza delle stringhe invece della corrispondenza regex. Se è così, aggiungi il parametro
-SimpleMatch
, come mostrato di seguito, e non preoccuparti mai della sintassi regex e dei caratteri speciali.Select-String 'APPLE' "C:\\myfiles\\notes.txt" -SimpleMatch
3. Ora, esegui il comando seguente per cercare APPLE
nel file notes.txt
con la distinzione tra maiuscole e minuscole abilitata (-CaseSensitive
). Il parametro -CaseSensitive
è utile per la precisione della ricerca.
Come puoi vedere qui sotto, l’unico corrispondente trovato ha la corrispondenza esatta delle maiuscole che hai specificato (APPLE).

4. Infine, esegui il comando seguente usando regex per cercare il modello '\?'
(un punto interrogativo) in tutti i file di testo (*.txt
) nella directory $PSHOME\en-US
. Regex ti consente di cercare modelli più complessi.
Se il contenuto di un file contiene un punto interrogativo, il comando restituisce il percorso completo del file alla console, come mostrato di seguito.

Utilizzo di ripgrep (rg) come equivalente di grep in Windows
rg è un’utilità a riga di comando open source progettata per cercare rapidamente nei file utilizzando modelli regex. Come altre utility a riga di comando, rg ha molte opzioni e funzionalità per personalizzare le ricerche.
Ma a differenza di findstr
e del cmdlet Select-String
, rg non è installato di default nel tuo sistema operativo Windows.
Per utilizzare rg come equivalente di grep in Windows:
1. Esegui il comando scoop
qui sotto per installare
ripgrep
sul tuo sistema. scoop install ripgrep

2. Successivamente, esegui il seguente comando rg
per verificare la versione installata di rg.
Come mostrato di seguito, vedrai il numero di versione di rg installato. A questo punto, puoi eseguire i comandi rg
per cercare stringhe.

3. Esegui il comando rg
qui sotto per cercare la stringa apple
nel file notes.txt
.
L’output visualizzerà le righe nel file notes.txt che contengono la stringa apple, come mostrato di seguito.
Nota che l’output è simile a quello del cmdlet Select-String
. Ma anziché evidenziare, rg
cambia il colore della stringa e del numero di riga corrispondenti per una distinzione rapida.

4. Ora, esegui il seguente comando utilizzando regex per cercare stringhe nel file notes.txt
.
La regex qui sotto utilizza i limiti di parola (\b
) e dice a rg
di cercare righe di stringhe che contengono una parola che inizia con ‘s’ e finisce con ‘e’ (s\w+e
).

Filtrare le Ricerche per Tipo di File Specifico
Forse sei particolare su quale directory sia il file che stai cercando ma non il nome del file. In tali casi, cercare il contenuto del file mentre si filtra la ricerca per tipo di file può essere la tua migliore opzione.
Filtrare la ricerca per tipi di file specifici può essere utile quando sei interessato solo a cercare determinati tipi di file. Oppure quando vuoi escludere certi tipi di file dalla ricerca.
Per filtrare la ricerca per tipi di file specifici, l’opzione --type
farà al caso tuo come segue:
1. Esegui il seguente comando rg
per cercare la stringa apple
in tutti i file di testo (--type txt
) nella directory C:\\myfiles
.
L’opzione --type
prende un tipo di file come argomento, che dice al comando rg
di cercare solo i file che corrispondono al tipo di file specificato.
L’output qui sotto mostra la riga contenente la stringa ‘apple‘ e il nome del file associato (notes.txt).

2. Successivamente, crea un XML chiamato notes.xml e popola il codice qui sotto. Questo file XML è solo una preparazione per dimostrare come funzionano le ricerche con caratteri jolly.
3. Ora, esegui il seguente comando per cercare la stringa apple
in tutti i (*.
) file. Questo comando cerca solo i file txt
e xml
come specificato (-g
).
Per impostazione predefinita, rg
è sensibile alle maiuscole e minuscole. Di conseguenza, l’output mostra solo la riga che contiene esattamente la stringa ‘apple’, e il file associato.

4. Infine, esegui il seguente comando, come hai fatto nel passaggio tre, per cercare la stringa apple
in tutti i file (*.
) che hanno un’estensione txt
o xml
. Ma questa volta, aggiungi l’opzione -i
, che dice a rg
di ignorare le maiuscole e minuscole.

Conclusione
Durante questo tutorial, hai imparato molti equivalenti di grep in Windows per cercare stringhe come letterali e usando regex. Hai sbloccato il potere di questi equivalenti di grep con una gamma di opzioni e parametri per personalizzare la ricerca e filtrare per tipi di file specifici.
A questo punto, dovresti essere sicuro nel risolvere problemi, identificare questioni e cercare tra grandi insiemi di file di testo.
Ora, perché non mettere alla prova le tue nuove competenze praticando con regexes e personalizzando le tue ricerche?
Source:
https://adamtheautomator.com/grep-equivalents-in-windows/