Hai mai sentito parlare di FINDSTR e Select-String? Select-String è un cmdlet utilizzato per cercare testo e modelli in stringhe e file di input. È simile a grep su Linux e FINDSTR su Windows. In questa guida vediamo cosa e come utilizzare i comandi FINDSTR e Select-String in Windows 11/10.

 

Cos’è FINDSTR e come usare FINDSTR

FINDSTR è un comando utilizzato per trovare testo specifico nei file su Windows. Find String quando viene messo in corto diventa FINDSTR. Viene anche utilizzato per trovare file con testo specifico. Esistono vari comandi FINDSTR per eseguire varie funzioni. È stato rilasciato per la prima volta con il Resource Kit di Windows 2000 con il nome qgrep. È uno strumento integrato in Windows e il suo file è disponibile in formato.exe. FINDSTR non cerca byte nulli come gli spazi nel formato Unicode.

Esistono alcune regole di base per utilizzare il comando findstr sul prompt dei comandi o altri interpreti della riga di comando, sviluppati da Microsoft. Sono:

Ogni comando FINDSTR deve contenere una stringa seguita da un nome di file. È possibile utilizzare caratteri letterali e metacaratteri nei comandi FINDSTR. I caratteri letterali non hanno alcun significato speciale nella sintassi. Lettere e numeri sono chiamati caratteri letterali. I meta-caratteri sono simboli che hanno significati specifici per ciascuno. Di seguito sono riportati i metacaratteri accettati nella sintassi e il loro significato.

Metacarattere

Valore

.

Carattere jolly – Qualsiasi carattere

*

Ripeti – Zero o più occorrenze del carattere o della classe precedente.

^

Posizione della riga di inizio – Inizio della riga.

$

Posizione della riga di fine – Fine della la riga.

[class]

Classe di caratteri – Qualsiasi carattere in un set.

[^class]

Classe inversa – Qualsiasi carattere non in un set.

[xy]

Intervallo – Qualsiasi caratteri all’interno dell’intervallo specificato.

\x

Escape – Uso letterale di un meta-carattere.

\

Posizione parola iniziale – Inizio parola.

string\>

Posizione parola finale – Fine della parola.

Dovresti creare un file di testo con cerca c riteria su una riga separata quando si desidera cercare più stringhe.Utilizzare gli spazi tra le stringhe per cercare più stringhe in un singolo comando ad eccezione della sintassi con/c.

Parametri e loro significato nella sintassi findstr

Parametro

Descrizione

/b

Corrisponde al modello di testo se si trova all’inizio di una riga.

/e

Corrisponde al modello di testo se si trova alla fine di una riga.

/l

Elabora le stringhe di ricerca letteralmente.

/r

Elabora le stringhe di ricerca come espressioni regolari. Questa è l’impostazione predefinita.

/s

Cerca nella directory corrente e in tutte le sottodirectory.

/i

Ignora il caso di i caratteri durante la ricerca della stringa.

/x

Stampa le righe che corrispondono esattamente.

/v

Stampa solo le righe che non contengono una corrispondenza.

/n

Stampa il numero di riga di ogni riga che corrisponde.

/m

Stampa solo il nome del file se un file contiene una corrispondenza.

/o

Stampa l’offset dei caratteri prima di ogni riga corrispondente.

/p

Salta i file con caratteri non stampabili.

/off[line]

Non salta i file con l’attributo offline impostato.

/f:

Ottiene un elenco di file dal file specificato.

/c:

Utilizza il testo specificato come stringa di ricerca letterale.

/g:

Ottiene le stringhe di ricerca dal file specificato.

/d:

Cerca nell’elenco specificato di directory. Ogni directory deve essere separata da un punto e virgola (;), ad esempio dir1;dir2;dir3.

/a:

Specifica gli attributi del colore con due cifre esadecimali. Digita colore
/? per ulteriori informazioni.

Specifica il testo da cercare nel nome file. Obbligatorio.

[\:][][…]

Specifica la posizione e il file oi file da cercare. È richiesto almeno un nome file.

/?

Visualizza la Guida al prompt dei comandi.

Utilizzo dei comandi findstr

1] Per cercare la parola microsoft o windows nel file xy, dovresti usare:

findstr microsoft windows xy

2] Per cercare per la parola Microsoft Windows nel file xy, dovresti usare:

findstr/c:”microsoft windows”xy

Nel comando sopra/c viene utilizzato per cercare il testo specificato “microsoft windows’nel file.

3] Se vuoi trovare le occorrenze della parola Microsoft con la M maiuscola nel file di testo twc.txt, dovresti usare:

findstr Microsoft twc.txt

4] Se vuoi cercare una parola specifica Microsoft in una directory e nelle sue sottodirectory senza dare importanza al tipo case, usa:

findstr/s/i Microsoft *.*

Nella sintassi precedente,/s è usato per cercare nella directory corrente e nelle sue sottodirectory./i viene utilizzato per ignorare il tipo maiuscole e minuscole (M maiuscola) nella stringa Microsoft.

5] Se si desidera trovare righe che iniziano con A con più spazi prima della parola e si desidera visualizzare il numero di riga in cui le stringhe si sono verificate, usa:

findstr/b/n/r/c:^ *To *.bas

6] Se vuoi cercare più stringhe in più file con i criteri di ricerca in stringlist.txt e l’elenco dei file in filelist.txt e vuoi vedere i risultati memorizzati nel file result.out, usa:

findstr/g:stringlist.txt/f:filelist.txt > results.out

7] Se vuoi trovare i file che contengono la parola thewindowsclub in una particolare directory e nelle sue sottodirectory, usa:

findstr/s/i/m \ *.*

8] Se vuoi trovare file che contengono thewindowsclub e altre parole che iniziano con simili tesi, termometro, ecc., usa:

findstr/s/i/m \

Questi sono i modi in cui puoi usare i comandi findstr negli interpreti della riga di comando come il prompt dei comandi, ecc. devono comprendere ogni parametro e la sua funzione, nonché i meta-caratteri e il loro significato per scrivere la sintassi e utilizzare il comando findstr regolarmente.

Cos’è Select-String e i suoi parametri

Immagina stai scrivendo pezzi di codice in PowerShell e hai perso traccia di determinate stringhe e testo in quel file PowerShell. Devi trovarlo in molte migliaia di righe di codice all’interno di migliaia di stringhe e parole. Arriva il comando Select-String che ti consente di cercare stringhe e testo in quei file di input di PowerShell. È simile a grep su Linux.

Select-String è un cmdlet utilizzato per cercare testo e modelli nelle stringhe e nei file di input. È simile a grep su Linux e FINDSTR su Windows. Quando viene utilizzato Select-String per cercare del testo, trova la prima corrispondenza in ogni riga e visualizza il nome del file, il numero di riga e l’intera riga in cui si è verificata la corrispondenza. Può essere utilizzato per trovare più corrispondenze per riga o per visualizzare il testo prima o dopo la corrispondenza o per ottenere risultati in espressioni booleane come True o False. Puoi anche usarlo per visualizzare tutto il testo tranne la corrispondenza dell’espressione che usi nel comando. I caratteri jolly che utilizzi in FINDSTR possono essere utilizzati anche in Select-String. Inoltre, Select-String funziona con diverse codifiche di file come ASCII, Unicode, ecc. Utilizza Byte-Order-Mark (BOM) per determinare la codifica del file. Se la distinta materiali non è presente nel file, Select-String assumerà il file come UTF8.

Parametri di Select-String

Microsoft ha immaginato e sviluppato i seguenti parametri che devono essere utilizzati nella sintassi.

-AllMatches

È usato per cercare tutte le corrispondenze in una riga rispetto alla prima corrispondenza nella riga che normalmente fa Select-Sting.

-CaseSensitive

Rappresenta che la corrispondenza fa distinzione tra maiuscole e minuscole. Per impostazione predefinita, Select-String non fa distinzione tra maiuscole e minuscole.

-Context

È utilizzato per acquisire il numero specificato di righe immesse prima e dopo la riga della corrispondenza. Se inserisci 1, acquisisce una riga prima e dopo la corrispondenza.

-Culture

Ci sono alcune culture come ordinale, invariante e così via nella codifica. Questo parametro è utilizzato per specificare la cultura nella sintassi.

-Codifica

È utilizzato per specificare il formato di codifica del testo in file come ASCII, UTF8, UTF7, Unicode, ecc.

-Escludi

Questo parametro viene utilizzato per escludere determinati testi nel file.

-Includi

Questo parametro viene utilizzato per includere un determinato testo nel file.

-InputObject

Si usa per specificare il testo da cercare.

-List

Si usa per recuperare l’elenco dei file che corrispondono al testo.

-LiteralPath

Si usa per specificare il percorso per la ricerca.

-NoEmphasis

In genere, Select-String evidenzia la corrispondenza nel file. Questo parametro viene utilizzato per evitare l’evidenziazione.

-NotMatch

È utilizzato per trovare il testo che non corrisponde al modello specificato.

-Path

È usato per specificare il percorso da cercare insieme all’uso dei caratteri jolly.

-Pattern

Il parametro è usato per trovare la corrispondenza in ogni riga come pattern.

-Quiet

Questo parametro viene utilizzato per ottenere l’output in valori booleani come True o False.

-Raw

È utilizzato per vedere solo gli oggetti corrispondenti anziché le informazioni sulla corrispondenza.

-SimpleMatch

Il parametro viene utilizzato per specificare una corrispondenza semplice anziché una corrispondenza con un’espressione regolare.

Differenza tra FINDSTR e Select-String

FINDSTR è un file eseguibile dell’era pre-PowerShell utilizzato per cercare testo e stringhe nei file. Select-String è un cmdlet di PowerShell utilizzato per cercare testo e modelli nei file. Rispetto a FINDSTR, Select-String è il cmdlet più potente e complesso che visualizza molte informazioni sulla corrispondenza.

Qual ​​è l’equivalente PowerShell di grep?

Select-String è l’equivalente PowerShell di grep disponibile su Windows. Funziona allo stesso modo di grep e fornisce informazioni dettagliate sulla corrispondenza in base ai parametri che utilizziamo nella sintassi.

FINDSTR funziona su file Word?

Sì, FINDSTR funziona su file di Word. Ma non può mostrare trova le corrispondenze anche se le stringhe che hai inserito sono presenti nel file. Può darti risultati in file binari nei formati.doc ma non nei formati.docx per alcuni motivi tecnici sconosciuti.

Lettura correlata: Come controllare la versione di PowerShell in Windows.

Categories: IT Info