GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovo tutti i file contenenti testo specifico su Linux?

Puoi usare ack. È come grep per il codice sorgente. Puoi scansionare l'intero file system con esso.

Basta fare:

ack 'text-to-find-here'

Nella tua directory principale.

Puoi anche usare espressioni regolari, specificare il tipo di file, ecc.

AGGIORNA

Ho appena scoperto The Silver Searcher, che è come un ack ma 3-5 volte più veloce di esso e ignora persino i pattern da un .gitignore file.


Procedi come segue:

grep -rnw '/path/to/somewhere/' -e 'pattern'
  • -r o -R è ricorsivo,
  • -n è il numero di riga e
  • -w sta per corrispondere alla parola intera.
  • -l (L minuscola) può essere aggiunto per dare solo il nome del file corrispondente.
  • -e è il modello utilizzato durante la ricerca

Insieme a questi, --exclude , --include , --exclude-dir i flag potrebbero essere usati per una ricerca efficiente:

  • Questo cercherà solo nei file che hanno estensioni .c o .h:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
  • Questo escluderà la ricerca di tutti i file che terminano con l'estensione .o:
grep --exclude=\*.o -rnw '/path/to/somewhere/' -e "pattern"
  • Per le directory è possibile escludere una o più directory utilizzando il --exclude-dir parametro. Ad esempio, questo escluderà le directory dir1/, dir2/ e tutte quelle che corrispondono a *.dst/:
grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"

Questo funziona molto bene per me, per raggiungere quasi lo stesso scopo del tuo.

Per ulteriori opzioni, vedi man grep .


Usa grep -ilR :

grep -Ril "text-to-find-here" /
  • i sta per ignore case (facoltativo nel tuo caso).
  • R sta per ricorsivo.
  • l sta per "mostra il nome del file, non il risultato stesso".
  • / sta per iniziare dalla radice della tua macchina.

Linux
  1. Come trovare tutti i file che non contengono una stringa di testo?

  2. Come cercare in file specifici che corrispondono a un modello?

  3. Come trovare tutti i file di proprietà di un utente specifico in Unix/Linux?

  4. Comando Linux:come "trovare" solo file di testo?

  5. Come trovare file di testo che non contengono testo su Linux?

Come trovare file in Linux

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

Grep Command in Linux (Trova testo nei file)

Come trovare ed eliminare file che contengono un testo specifico nei loro nomi in Linux

Come trovare file contenenti una stringa di testo specifica in Linux

Trova testo nei file su Linux usando grep