logo

Come trovare tutti i file contenenti testo specifico (stringa) su Linux

Supponiamo che tu stia cercando un file in Linux, ma ne hai dimenticato il nome. Ti ricordi solo il contenuto del file. Come troverai il file in questo caso? Bene, ci sono alcuni metodi utili che ti aiuteranno a trovare un file contenente un testo (o una stringa) specifico in Linux. La stringa deve essere specificata dall'utente. Quindi, diamo un'occhiata ai metodi:

Metodi per trovare tutti i file contenenti testo specifico (stringa) su Linux

Metodo 1: comando grep

comando grep in Linux che viene utilizzato per cercare file contenenti un testo o una stringa specifica. Per impostazione predefinita, ci mostra le righe nei file che contengono quel testo particolare. Se aggiungiamo l'opzione -l, il comando ci mostrerà tutti i file che contengono quel testo particolare.



Esempio:

Supponiamo di avere una directory che contiene due file denominati file1.txt e file2.txt.

numeri romani 1 100

Contenuto del file1.txt:



This line contains text.>

Contenuto del file2.txt:

You should learn Data Structures & Algorithms.>

Ora utilizzeremo il comando grep con l'opzione -l per cercare testo in determinati file situati nella directory corrente. Vedere l'esempio seguente:



Dall'esempio precedente si può chiaramente affermare che il comando grep ha trovato con successo la stringa specificata nel file1.txt. Di conseguenza, veniva visualizzato il nome del file sullo schermo.

Possiamo anche usare l'opzione -i per dire a grep di ignorare il caso. Guarda il seguente esempio:

Sopra, abbiamo usato prima il comando precedente, ma la stringa data è Text. Poiché file1.txt contiene testo e non testo, non viene preso in considerazione. In questo caso l'operazione di ricerca viene eseguita tenendo presente il caso. Quindi, abbiamo utilizzato l'opzione -i. Di conseguenza, il caso viene ignorato e la stringa data corrisponde a quella contenuta in file1.txt. Pertanto, il nome del file viene visualizzato sullo schermo.

Un'altra variante consiste nell'utilizzare l'opzione -r. Suggerisce a grep di cercare ricorsivamente la stringa data nella directory corrente e nelle sue sottodirectory. Guarda l'esempio qui sotto:

file1.txt e file2.txt si trovano nella cartella dei file, non nella directory corrente, ovvero sul desktop. Quindi, se non utilizziamo l'opzione -r, non verrà trovato alcun file con le stringhe corrispondenti perché non esistono nella directory corrente. Ma abbiamo usato l'opzione -r e abbiamo anche omesso i nomi dei file. Di conseguenza, grep cerca le stringhe corrispondenti non solo nella directory corrente ma anche nelle sue sottodirectory. Quindi, file1.txt viene trovato e visualizzato sullo schermo.

Metodo 2: la combinazione del comando find e grep

Trovare è un altro comando utile in Linux. Combineremo find con l'opzione -type f per cercare file e l'opzione -exec da applicare a grep sui file trovati. Guarda il seguente esempio:

Chiaramente l'operazione di ricerca trova file1.txt poiché contiene la stringa corrispondente. Pertanto, il nome del file viene visualizzato sullo schermo.

Metodo 3: trova file contenenti testo specifico con mc

Possiamo anche cercare file utilizzando Midnight Commander (mc). Apri l'applicazione e premi Alt + Maiusc + ? per aprire la finestra di dialogo Trova file. Vedrai una casella di partenza in alto. Nella casella digitare il percorso in cui esistono i file. Quindi, sotto la casella del contenuto, digita la stringa che desideri cercare. Nel nostro caso, abbiamo cercato il testo nella directory File:

Di seguito si può vedere chiaramente che l'operazione di ricerca ha trovato con successo file1.txt, che contiene la stringa corrispondente.

Metodo 4: comando ripgrep

ripgrep (scritto come rg) è un comando che può essere utilizzato come alternativa al comando grep. L'implementazione è di seguito:

viene trovato file1.txt e quindi il nome del file viene visualizzato sullo schermo.

10 di 50

Metodo 5: comando ack

Ancora un altro comando che possiamo usare è il comando ack. Ecco l'implementazione:

file1.txt viene trovato e visualizzato con successo sullo schermo.