GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare file contenenti una stringa di testo specifica in Linux

Quasi tutti i file manager per Linux come Nemo e Thunar per impostazione predefinita forniscono un'opzione per cercare i file. Ma se vuoi cercare una stringa all'interno del contenuto di un file utilizzando il file manager, la maggior parte di essi non ti consente di farlo.

In questo articolo, discuterò diversi modi che puoi utilizzare su qualsiasi distribuzione Linux per trovare tutti i file contenenti stringhe di testo o parole specifiche scavando ricorsivamente in tutte le sottodirectory.

In questa pagina

  • Cerca testo specifico in Linux utilizzando lo strumento GUI Catfish
  • Cerca testo specifico in Linux utilizzando il comando Grep
  • Cerca testo specifico in Linux utilizzando MC (Midnight Commander)

Cerca testo specifico in Linux utilizzando lo strumento GUI Catfish

Inizierò con il modo più semplice che può funzionare per tutti, compresi i principianti, per far avanzare gli utenti Linux. Pesce gatto è uno strumento di ricerca file basato su GUI semplice e leggero per desktop Linux. Oltre a cercare file sul tuo sistema, puoi anche usarlo per trovare tutti i file che contengono una parola particolare.

[ Potrebbe piacerti anche:Come trovare file basati su timestamp in Linux ]

Installa lo strumento di ricerca Catfish su Linux

Il pesce gatto il pacchetto è già disponibile sui repository Debian e Ubuntu primari. Quindi, se stai usando distribuzioni basate su Debian o Ubuntu, puoi semplicemente installarlo eseguendo il comando:

$ sudo apt install catfish  [On Debian/Ubuntu & Mint]

Su altre distribuzioni Linux, puoi installarlo dai repository predefiniti usando il tuo gestore di pacchetti.

$ sudo yum install catfish  [On CentOS/RHEL 7]
$ sudo dnf install catfish  [On CentOS/RHEL 8 & Fedora]
$ sudo pacman -S catfish    [On Arch Linux]
$ sudo pkg_add -v catfish   [On FreeBSD]

Se il pacchetto non è disponibile, puoi scaricare il file della versione più recente, estrarre il file tar.bz2 scaricato ed eseguire il comando seguente:

$ sudo python3 setup.py install

Cerca nel contenuto del file utilizzando Catfish

Una volta installato, non devi far altro che abilitare “Cerca nel contenuto del file ”, seleziona le directory dall'opzione a discesa in alto a sinistra e digita il testo che desideri cercare. Elencherà tutti i file contenenti testo insieme alle dimensioni e alla posizione del file.

Puoi anche utilizzare il tipo di file e il filtro della data modificata dal pannello di sinistra per ridurre l'ambito di ricerca. Puoi anche aggiungere un percorso di directory in cui non desideri effettuare ricerche.

Cerca testo specifico in Linux usando il comando Grep

Accanto alla GUI modo, grep è uno dei popolari strumenti da riga di comando che può essere utilizzato per cercare all'interno del contenuto dei file. Poiché quasi tutti i sistemi operativi simili a Unix contengono grep utility per impostazione predefinita, non è necessario installarla.

Cerca un testo particolare nei file

Ora per cercare e trovare tutti i file per una determinata stringa di testo in un terminale Linux, puoi eseguire il comando seguente. Qui, il '-r' o '-R' flag ricerca ricorsivamente in tutte le sottodirectory all'interno della directory specificata.

$ grep -r “linuxshelltips” /home/sarvottam/

Trova nomi di file che contengono una determinata stringa

Se vuoi stampare solo i nomi dei file e nascondere il testo dall'output, puoi usare il '-l' bandiera.

$ grep -rl “linuxshelltips” /home/sarvottam/

Stampa nomi di file e numeri di riga che contengono una determinata stringa

Inoltre, puoi anche modificare l'output utilizzando le seguenti opzioni disponibili per grep :

  • 'i' per la distinzione tra maiuscole e minuscole.
  • 'n' per stampare il numero di riga.
  • 'w' per abbinare l'intera parola.
$ sudo grep -rnwi “linuxshelltips” /home/sarvottam/

Vale anche la pena ricordare che se cerchi nelle directory che richiedono i permessi di root, devi usare il comando sudo.

Cerca testo specifico in tipi di file specifici

Per ridurre ulteriormente l'ambito di ricerca, puoi anche menzionare in modo specifico il tipo di file e le directory da cercare solo durante la ricerca. “--include” , “--exclude” e “--exclude-dir” sono le opzioni disponibili per aggiungere il tipo di file e il filtro della directory.

$ grep --include=\*.txt --exclude=\*.{java,js} --exclude-dir=\bin -rnwi "linuxshelltips" /home/sarvottam/

Cerca testo specifico in Linux utilizzando MC (Midnight Commander)

Se vivi in ​​un terminale e desideri comunque cercare il testo utilizzando la GUI, puoi anche provare lo strumento di gestione file basato su Terminal User Interface (TUI), mc (comandante di mezzanotte ) – è un file manager visivo che viene utilizzato per cercare i file.

Installa Midnight Commander su Linux

Il comandante di mezzanotte è disponibile per l'installazione dai repository predefiniti nella maggior parte delle distribuzioni Linux.

$ sudo apt install mc  [On Debian/Ubuntu & Mint]
$ sudo yum install mc  [On CentOS/RHEL 7]
$ sudo dnf install mc  [On CentOS/RHEL 8 & Fedora]
$ sudo pacman -S mc    [On Arch Linux]
$ sudo pkg_add -v mc   [On FreeBSD]

Cerca nel contenuto dei file utilizzando Midnight Commander

All'interno del terminal, mc fornisce una rappresentazione visiva del filesystem in cui è possibile navigare tramite tastiera o mouse. Per cercare il contenuto del file, puoi aprire una finestra di ricerca usando ALT+SHIFT+? e inserisci il testo nel “Content:” sezione.

Come puoi vedere nell'immagine sopra, puoi anche utilizzare filtri come ignora maiuscole e minuscole, parole intere ed espressioni regolari semplicemente selezionando e deselezionando.

Conclusione

Tutte le applicazioni sopra menzionate sono facili da usare, gratuite e open source per i principianti per aggiungere i tuoi miglioramenti. In alternativa, puoi anche provare altri strumenti gratuiti come Ack, The Silver Searcher, Ripgrep e trova il comando.


Linux
  1. Come trovare un file in Linux

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

  3. Come trovare testo specifico usando GREP su Linux

  4. Come trovare righe contenenti una stringa in Linux

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

Come trovare una stringa in un file su Linux

Come rinominare uno o più file in Linux

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

Come trovare file basati su timestamp in Linux

Come trovare i file modificati nelle ultime 24 ore in Linux

Come comprimere un file in Linux