GNU/Linux >> Linux Esercitazione >  >> Linux

Come cercare una parola nell'intero contenuto di una directory in Linux

xargs si aspetta input in un formato che nessun altro comando produce, quindi è difficile da usare in modo efficace. Quello che non va qui è che hai un file il cui nome deve essere quotato in input a xargs (probabilmente contenente un ' ).

Se il tuo grep supporta -r o -R opzione per la ricerca ricorsiva, usala.

grep -r word .

Altrimenti, usa il -exec primario di find . Questo è il solito modo per ottenere lo stesso effetto di xargs , tranne che senza vincoli sui nomi dei file. Versioni ragionevolmente recenti di find consentono di raggruppare più file in un'unica chiamata al comando ausiliario. Passaggio /dev/null a grep assicura che mostrerà il nome del file prima di ogni corrispondenza, anche se capita di essere chiamato su un singolo file.

find . -type f -exec grep word /dev/null {} +

Versioni precedenti di find (su sistemi più vecchi o OpenBSD, o utilità ridotte come BusyBox) può chiamare il comando ausiliario solo su un file alla volta.

find . -type f -exec grep word /dev/null {} \;

Alcune versioni di find e xargs hanno estensioni che consentono loro di comunicare correttamente, utilizzando caratteri nulli per separare i nomi dei file in modo che non sia richiesta alcuna citazione. Al giorno d'oggi, solo OpenBSD ha questa caratteristica senza avere -exec … {} + .

find . -type f -print0 | xargs -0 grep word /dev/null

Immagino tu intenda la prima opzione

grep ricorsivo, per la ricerca di contenuti all'interno dei file

grep -R "content_to_search" /path/to/directory

è ricorsivo, per la ricerca di file che corrispondono

ls -lR | grep "your_search"

Se hai gli strumenti GNU (cosa che fai se il tag Linux è accurato) allora puoi usare -print0 e -0 per aggirare i soliti problemi di quotazione:

find . -type f -print0 | xargs -0 grep word

Linux
  1. Come creare una directory condivisa per tutti gli utenti in Linux

  2. Come cercare e rimuovere le directory in modo ricorsivo su Linux

  3. Come trovare testo specifico usando GREP su Linux

  4. Come posso eseguire dos2unix su un'intera directory?

  5. come cercare una directory dal terminale in ubuntu

Come trovare file in Linux con il comando Trova

Come usare il comando grep in Linux/UNIX

Come contare i file nella directory in Linux

Come trovare una stringa in un file su Linux

Come cercare file dalla riga di comando di Linux

Come trovare la dimensione totale di una directory in Linux