GNU/Linux >> Linux Esercitazione >  >> Linux

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 attraverso le directory per trovare ed elencare tutti i file che contengono una determinata stringa di testo.

Un modo semplice per risolverlo è utilizzare lo strumento di ricerca di modelli grep, un'utilità da 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 avanzati "Grep" 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 ”, cercando in modo ricorsivo e aggressivo il ~/bin directory.

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

Dove il -R l'opzione dice a 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 indica di selezionare solo quelle righe contenenti corrispondenze che formano parole intere e -e viene utilizzato per specificare la stringa (modello) 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 tra maiuscole e minuscole, utilizza -i 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'

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 usando il --include opzione.

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

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

Inoltre, è possibile cercare più di un pattern, 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, condividi con noi o fai domande su questo argomento, usa il modulo di commento qui sotto.


Linux
  1. Come trovare ed eliminare directory e file vuoti in Unix

  2. Come trovare ed eliminare directory e file vuoti in Linux

  3. Come elencare in modo ricorsivo tutti i file e le directory

  4. Come trovo tutti i file contenenti testo specifico su Linux?

  5. Come afferrare una parola specifica e afferrare il testo

Come utilizzare sed per trovare e sostituire la stringa nei file

Come trovare una stringa in un file su Linux

Come trovare file contenenti una stringa di testo specifica in Linux

Come trovare e sostituire testo, parola o stringa in un file

Trova facilmente file e directory su Linux

Come eseguire la ricerca Grep su tutti i file e in tutte le directory