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

instagram story viewer

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 è usare strumento di ricerca di modelli grep, è un'utilità della riga di comando potente, efficiente, affidabile e più popolare per trovare modelli e parole da file o directory su sistemi simili a Unix.

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

Il comando seguente elencherà tutti i file contenenti una riga con il testo "check_root”, ricercando ricorsivamente e aggressivamente il ~/bin directory.

$ grep -Rw ~/bin/ -e 'check_root'
Trova una parola nella directory
Trova una parola nella directory

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

Dovresti usare il comando sudo durante la ricerca di determinate directory o file che richiedono i permessi di root (a meno che tu non stia gestendo il tuo sistema con l'account di root).

 $ sudo grep -Rw / -e 'check_root' 

Per ignorare le distinzioni di caso, utilizzare il -io opzione come mostrato:

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

Se vuoi conoscere la riga esatta in cui esiste la stringa di testo, includi il -n opzione.

$ grep -Rinw ~/bin/ -e 'check_root'
Trova stringa con numero di riga
Trova stringa con numero di riga

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

Questo esempio indica a grep di guardare solo attraverso tutto .SH File.

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

Inoltre è possibile ricercare più di un pattern, utilizzando il seguente comando.

$ grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'
Trova più parole nei file
Trova più parole nei file

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

Teachs.ru