Ricerca nel sito web

Come trovare una stringa o una parola specifica in file e directory


Vuoi trovare tutti i file che contengono una particolare parola o stringa di testo sull'intero sistema Linux o su una determinata directory. Questo articolo ti guiderà su come farlo, imparerai come scavare ricorsivamente nelle directory per trovare ed elencare tutti i file che contengono una determinata stringa di testo.

Un modo semplice per risolvere questo problema è utilizzare lo strumento di ricerca di modelli grep, un'utilità da riga di comando potente, efficiente, affidabile e molto popolare per trovare modelli e parole da file o directory su sistemi simili a Unix.

Leggi anche: 11 comandi avanzati Linux "Grep" su classi di caratteri ed espressioni tra parentesi

Il comando seguente elencherà tutti i file contenenti una riga con il testo "check_root", effettuando una ricerca ricorsiva e aggressiva nella directory ~/bin.

grep -Rw ~/bin/ -e 'check_root'

Dove l'opzione -R dice a grep di leggere tutti i file in ciascuna directory, in modo ricorsivo, seguendo i collegamenti simbolici solo se si trovano sulla riga di comando e l'opzione -w< gli dice di selezionare solo quelle righe che contengono corrispondenze che formano parole intere, e -e viene utilizzato per specificare la stringa (modello) da cercare.

Dovresti usare il comando sudo quando cerchi determinate directory o file che richiedono permessi di root (a meno che tu non gestisca il tuo sistema con l'account root).

 
sudo grep -Rw / -e 'check_root'	

Per ignorare le distinzioni tra maiuscole e minuscole, utilizza l'opzione -i come mostrato:

grep -Riw ~/bin/ -e 'check_root'

Se vuoi conoscere la riga esatta in cui si trova la stringa di testo, includi l'opzione -n.

grep -Rinw ~/bin/ -e 'check_root'

Supponendo che ci siano diversi tipi di file in una directory in cui desideri cercare, puoi anche specificare il tipo di file da cercare, ad esempio, in base alla loro estensione utilizzando l'opzione --include.

Questo esempio indica a grep di esaminare solo tutti i file .sh.

grep -Rnw --include=\*.sh ~/bin/ -e 'check_root'

Inoltre, è possibile cercare più di un modello, utilizzando il seguente comando.

grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'

Questo è tutto! Se conosci altri trucchi da riga di comando per trovare stringhe o parole nei file, condividili con noi o fai domande su questo argomento, utilizza il modulo di commento qui sotto.