Come cercare testo in più file su Linux

Risposta rapida

Ricerca da riga di comando: usa grep o ripgrep per cercare in file di testo semplice, codice, log e file di configurazione.
Ricerca grafica nei documenti: usa uno strumento di ricerca nei documenti per cercare all'interno di PDF, Word, LibreOffice, Excel e altri file con anteprime.

 

Cercare testo in più file su Linux può significare due cose diverse: cercare nei file di testo semplice dal terminale oppure cercare all'interno di veri e propri documenti, come file PDF, Word, LibreOffice ed Excel.

 

Usa la tabella seguente per scegliere innanzitutto il metodo giusto, quindi segui la sezione pertinente.

 

 

Quale metodo di ricerca Linux dovresti usare?

 

Il metodo migliore dipende soprattutto dal tipo di file in cui devi cercare.

 

Attività Opzione migliore
Cercare in testo semplice, codice sorgente, log o file di configurazione grep
Cercare in una cartella e in tutte le sottocartelle dal terminale grep -R
Cercare rapidamente nei progetti di codice ripgrep
Cercare all'interno di PDF, Word, LibreOffice, Excel e altri documenti SeekFast
Usare uno strumento gratuito e open source per la ricerca indicizzata nei documenti Recoll o DocFetcher
Cercare solo nei file PDF dal terminale pdfgrep

 

Il limite importante è che i normali strumenti da riga di comando leggono generalmente testo semplice. Sono eccellenti per i file tecnici, ma non consentono di cercare in modo affidabile all'interno di formati di documenti complessi. Per questo motivo, la risposta giusta per una cartella piena di documenti è diversa da quella adatta a una cartella piena di log o codice.

 

 

Cercare nei file di testo semplice con grep

 

grep è il comando Linux standard per trovare testo nei file. È particolarmente adatto a testo semplice, codice sorgente, log, file CSV, file Markdown e file di configurazione.

 

Per cercare una parola in un file, usa:

 

grep "error" server.log

 

Per cercare in tutti i file della cartella corrente, usa:

 

grep "error" *

 

Per cercare in una cartella e in tutte le relative sottocartelle, usa la ricerca ricorsiva:

 

grep -R "error" /path/to/folder

 

In pratica, di solito aggiungo i numeri di riga e i nomi dei file, perché rendono i risultati più facili da usare:

 

grep -RIn "error" /path/to/folder

 

Ecco cosa significano le opzioni:

 

  • -R esegue la ricerca ricorsiva nelle cartelle.
  • -I ignora i file binari.
  • -n mostra i numeri di riga.

 

Search text in multiple Linux files with grep

 

Ricerca senza distinzione tra maiuscole e minuscole

 

Per ignorare le differenze tra maiuscole e minuscole, aggiungi -i:

 

grep -RIn -i "invoice" ~/Documents

 

Questo comando può trovare "invoice", "Invoice" e "INVOICE".

 

Cercare solo parole intere

 

Per trovare una parola intera, aggiungi -w:

 

grep -RIn -w "cat" ~/notes

 

In questo modo si evitano corrispondenze all'interno di parole più lunghe, come "category".

 

Cercare solo tipi di file specifici

 

Per cercare solo nei file con una determinata estensione, usa --include:

 

grep -RIn --include="*.txt" "budget" ~/Documents

 

Per più estensioni, ripeti l'opzione:

 

grep -RIn --include="*.txt" --include="*.md" --include="*.log" "budget" ~/Documents

 

Questo è utile per le cartelle che contengono molti tipi di file quando vuoi cercare soltanto nei file di testo.

 

Escludere cartelle dalla ricerca

 

Le cartelle di grandi dimensioni contengono spesso directory in cui non vuoi eseguire la ricerca, come .git, node_modules, vendor o i backup. Puoi escluderle così:

 

grep -RIn --exclude-dir=".git" --exclude-dir="node_modules" "error" ~/project

 

In questo modo i risultati restano più ordinati e la ricerca può diventare molto più veloce.

 

Cercare una frase esatta o più parole

 

Per cercare una frase esatta, inseriscila tra virgolette:

 

grep -RIn "payment failed" ~/logs

 

Per cercare una parola oppure un'altra, usa le espressioni regolari estese con -E:

 

grep -RInE "error|failed|timeout" ~/logs

 

Questo è un dettaglio importante. Senza -E, nella sintassi di base di grep la barra verticale non viene interpretata come un normale operatore di alternanza.

 

Quando grep non è sufficiente

 

grep è potente, ma rimane uno strumento di ricerca nel testo semplice. In genere funziona bene con i file memorizzati come testo leggibile. Non è una buona soluzione generale per documenti Word, fogli di calcolo Excel, file LibreOffice, PDF, eBook o altri formati di documenti.

 

Se provi a usare grep in una cartella piena di documenti di formati diversi, spesso non troverai corrispondenze importanti oppure otterrai risultati illeggibili. In questi casi, passa direttamente agli strumenti di ricerca nei documenti.

 

 

Usare ripgrep per una ricerca più veloce dalla riga di comando

 

ripgrep, eseguito solitamente come rg, è un moderno strumento di ricerca da riga di comando. È particolarmente popolare tra gli sviluppatori perché cerca nelle directory in modo ricorsivo per impostazione predefinita e, nelle grandi cartelle di codice, è generalmente più veloce di grep.

 

Per cercare nella cartella corrente e nelle relative sottocartelle, usa:

 

rg "error"

 

Per cercare in una cartella specifica:

 

rg "error" ~/project

 

Per cercare solo in determinati tipi di file:

 

rg "error" -g "*.log" ~/logs

 

Per impostazione predefinita, ripgrep rispetta anche .gitignore, una funzionalità utile nei progetti di codice sorgente perché permette di ignorare automaticamente molti file generati o irrilevanti.

 

Usa ripgrep quando cerchi in codice, log, Markdown, file di configurazione o altro testo semplice. Per PDF, Word, LibreOffice, Excel e altri documenti, usa invece uno strumento di ricerca nei documenti.

 

 

Cercare file su Ubuntu, Mint, Fedora, Debian e altre distribuzioni Linux

 

I comandi di ricerca sono quasi identici nella maggior parte delle distribuzioni Linux. grep è normalmente installato per impostazione predefinita e la differenza principale riguarda il modo in cui si installano strumenti aggiuntivi, come ripgrep, Recoll o le applicazioni desktop per la ricerca nei documenti.

 

 

Come si cercano i file in Ubuntu?

 

Su Ubuntu puoi usare subito grep:

 

grep -RIn "text" ~/Documents

 

Per installare ripgrep e rendere più veloci le ricerche ricorsive nelle cartelle di testo e codice, usa:

 

sudo apt install ripgrep

 

Per cercare in PDF, Word, LibreOffice, Excel e altri documenti, usa uno strumento grafico di ricerca nei documenti. Ubuntu utilizza pacchetti `.deb`, quindi scegli il download per Debian/Ubuntu quando installi un software desktop di ricerca come SeekFast.

 

 

Come si cercano i file in Linux Mint?

 

Linux Mint è basato su Ubuntu, quindi generalmente si applicano gli stessi comandi. Puoi cercare nei file di testo semplice con grep:

 

grep -RIn "text" ~/Documents

 

E puoi installare ripgrep con:

 

sudo apt install ripgrep

 

Per gli utenti che passano da Windows a Mint, uno strumento grafico di ricerca nei documenti può risultare più intuitivo dei comandi da terminale, soprattutto quando la cartella contiene PDF, DOCX, ODT, XLSX e altri documenti da ufficio.

 

 

Come si cercano i file in Fedora?

 

Anche Fedora include grep, quindi il comando ricorsivo di base è lo stesso:

 

grep -RIn "text" ~/Documents

 

Per installare ripgrep su Fedora, usa:

 

sudo dnf install ripgrep

 

Per gli strumenti grafici di ricerca nei documenti, gli utenti Fedora generalmente devono usare un pacchetto `.rpm`, quando disponibile.

 

 

E per Debian, openSUSE, Arch e altre distribuzioni?

 

La logica di ricerca rimane la stessa: grep per i file di testo semplice, ripgrep per una ricerca veloce da riga di comando e strumenti di ricerca nei documenti per PDF, Word, LibreOffice, Excel e cartelle con formati misti.

 

Il comando di installazione cambia in base alla distribuzione:

 

  • Debian: usa sudo apt install ripgrep e i pacchetti `.deb`.
  • openSUSE: usa sudo zypper install ripgrep e i pacchetti RPM.
  • Arch: usa sudo pacman -S ripgrep.

 

Se usi una distribuzione meno comune, verifica se lo strumento desiderato è disponibile come pacchetto nativo, AppImage, Snap, Flatpak o in un altro formato supportato.

 

 

Cercare all’interno di PDF, Word, LibreOffice e altri documenti

 

Molte persone cercano testo su Linux perché devono trovare qualcosa all'interno di veri e propri documenti, non soltanto in file di testo semplice. È qui che gli strumenti da riga di comando diventano molto meno pratici.

 

Una cartella di documenti può contenere PDF, DOCX, ODT, ODS, XLSX, CSV, HTML, TXT, EPUB e molti altri formati. Alcuni file memorizzano direttamente il testo. Altri lo memorizzano in XML compresso, strutture binarie od oggetti PDF. Una normale ricerca con grep non è progettata per gestire tutto questo in modo affidabile.

 

Per le cartelle di documenti, considera innanzitutto il tipo di file. Cercare all'interno di PDF, file DOCX, file di LibreOffice Writer e cartelle con formati misti comporta attività leggermente diverse.

 

 

Cercare all'interno dei file PDF su Linux

 

Se devi cercare all'interno di file PDF su Linux, la prima domanda da porti è se il PDF contiene vero testo selezionabile. In caso affermativo, strumenti come pdfgrep possono eseguire la ricerca dal terminale.

 

Un comando ricorsivo di base con pdfgrep è il seguente:

 

pdfgrep -RIn "invoice" ~/Documents

 

Funziona bene per i PDF basati su testo, ma non per tutti i PDF. I PDF scansionati richiedono generalmente prima l'OCR, perché contengono immagini delle pagine anziché testo ricercabile. Se la cartella contiene PDF insieme a documenti Word, LibreOffice, Excel e di altro tipo, uno strumento di ricerca nei documenti è solitamente più pratico rispetto all'uso di un comando separato per ciascun formato.

 

 

Cercare all'interno dei file DOCX su Linux

 

I file DOCX non sono file di testo semplice. Tecnicamente, un file DOCX è un pacchetto compresso che contiene XML e altri file interni. Ciò significa che il normale grep non rappresenta un modo semplice o affidabile per cercare all'interno dei documenti DOCX.

 

Esistono soluzioni tecniche alternative, come estrarre il file DOCX o convertirlo prima in testo, ma sono poco pratiche per l'uso quotidiano. Se hai bisogno di una ricerca desktop Linux per i file DOCX, generalmente è meglio usare uno strumento che comprenda i formati dei documenti e possa mostrare il testo corrispondente nel relativo contesto.

 

 

Trovare testo nei file di LibreOffice Writer

 

I file di LibreOffice Writer utilizzano generalmente il formato ODT. Come DOCX, ODT non è un semplice file di testo, quindi grep non è lo strumento adatto alle normali ricerche nei documenti Writer.

 

Se hai aperto un solo documento, è sufficiente la funzione Trova integrata in LibreOffice. Se devi trovare testo in molti file di LibreOffice Writer, usa uno strumento di ricerca nei documenti in grado di leggere i file ODT e cercare contemporaneamente in un'intera cartella.

 

Questa è una situazione comune per gli utenti Linux che sono passati da Windows a Ubuntu, Mint, Fedora, Debian o un'altra distribuzione desktop e ora hanno bisogno di un'alternativa pratica alla ricerca nei documenti di Windows.

 

 

Usare un'alternativa grafica a grep per Linux

 

grep è veloce, ma non è sempre pratico. Restituisce righe nel terminale e spesso devi aprire separatamente il file per comprendere la corrispondenza. Per lavorare con i documenti, un'alternativa grafica a grep per Linux può essere molto più semplice.

 

Uno strumento grafico di ricerca può consentirti di scegliere una cartella, digitare le parole chiave, visualizzare anteprime, ordinare i risultati e aprire direttamente il file corrispondente. Ciò è particolarmente utile quando cerchi all'interno di cartelle contenenti documenti di formati diversi anziché file di testo tecnici.

 

 

I migliori strumenti di ricerca nei documenti per Linux

 

Gli strumenti riportati di seguito sono le opzioni più pertinenti quando grep e ripgrep non sono sufficienti perché si tratta di documenti, non di file di testo semplice.

 

 

SeekFast

 

SeekFast è uno strumento di ricerca nei documenti per Windows, macOS e Linux. È progettato per cercare all'interno di grandi raccolte di documenti, anziché limitarsi alla ricerca nei file di testo semplice dal terminale.

 

Il vantaggio principale è la praticità. Scegli una cartella, digiti le parole da cercare e visualizzi le frasi corrispondenti prima di aprire ciascun file. È utile quando non conosci il nome esatto del file e devi cercare all'interno di molti documenti.

 

SeekFast search results with matching text previews

 

SeekFast è particolarmente utile quando la cartella contiene tipi di documenti diversi, perché può cercare all'interno di molti formati e ordinare i risultati per pertinenza. Ciò rende l'esperienza più simile a una ricerca sul Web che a una tradizionale ricerca di corrispondenze esatte nei file.

 

Le funzionalità principali includono:

 

  • Ricerca nei documenti - cerca all'interno di PDF, Word, LibreOffice, Excel, file di testo, eBook e molti altri formati di documenti.
  • Anteprime delle frasi corrispondenti - visualizza il testo pertinente prima di aprire il file.
  • Risultati ordinati per pertinenza - i file con corrispondenze migliori vengono visualizzati più in alto nei risultati.
  • Ricerca con più parole chiave - trova i documenti anche quando le parole non sono una accanto all'altra.
  • Flusso di lavoro grafico - non è necessario creare comandi da terminale per le comuni attività di ricerca nei documenti.

 

Vantaggi

  • Molto più pratico di grep per le cartelle contenenti veri documenti.
  • Funziona bene quando ricordi alcune parole del documento, ma non il nome del file.
  • Mostra il contesto, consentendoti di valutare i risultati prima di aprire i file.
  • Utile per cartelle miste contenenti PDF, file Office, LibreOffice, file di testo e altri formati.

 

Svantaggi

  • La versione gratuita è limitata alla ricerca in un massimo di 50 file alla volta.
  • Non è pensato per sostituire grep o ripgrep nelle ricerche nel codice sorgente.
  • Non supporta flussi di lavoro avanzati con espressioni regolari come gli strumenti specializzati da riga di comando.

 

Se la tua attività principale consiste nel cercare all'interno di molti documenti anziché nel codice o nei file di log, scarica SeekFast e provalo con una delle tue cartelle di documenti.

 

 

Recoll

 

Recoll è uno strumento gratuito di ricerca desktop per sistemi simili a Unix. Utilizza un indice, il che significa che prima analizza le cartelle scelte e poi consente di eseguire rapidamente le ricerche.

 

Recoll document search tool on Linux

 

Recoll può cercare in molti formati di testo e documenti, a seconda dei pacchetti di supporto installati nel sistema. È una buona scelta se desideri uno strumento desktop open source per la ricerca indicizzata e non ti dispiace dedicare un po' di tempo alla configurazione.

 

Vantaggi

  • Gratuito e open source.
  • Funziona bene come strumento desktop Linux per la ricerca indicizzata.
  • Può cercare in molti formati di documenti con i programmi di supporto appropriati.

 

Svantaggi

  • L'indicizzazione e la configurazione iniziali possono richiedere tempo.
  • Il flusso di lavoro può sembrare tecnico agli utenti occasionali.
  • Il supporto dei formati di documenti può dipendere dai pacchetti di sistema installati.

 

 

DocFetcher

 

DocFetcher è un'applicazione desktop gratuita e open source per la ricerca su Windows, macOS e Linux. Come Recoll, funziona creando indici per le cartelle scelte.

 

DocFetcher document search tool on Linux

 

DocFetcher supporta formati di documenti comuni come PDF, Microsoft Office, OpenDocument, HTML e testo semplice. Può essere utile quando desideri uno strumento multipiattaforma gratuito e non hai problemi a creare gli indici prima della ricerca.

 

Vantaggi

  • Gratuito e open source.
  • Disponibile per Linux, Windows e macOS.
  • Può mostrare anteprime testuali dei documenti indicizzati.

 

Svantaggi

  • Richiede l'indicizzazione prima che le ricerche diventino veloci.
  • L'interfaccia appare meno moderna rispetto a molti strumenti di ricerca più recenti.
  • È meno pratico se cerchi spesso in cartelle occasionali senza preparare un indice.

 

Conclusione

 

Per testo semplice, codice, log e file di configurazione, gli strumenti Linux da riga di comando rappresentano generalmente l'opzione più veloce. Inizia con grep e usa ripgrep quando desideri una ricerca ricorsiva più veloce nelle cartelle di codice o testo.

 

Per PDF, Word, LibreOffice, Excel e altri documenti, gli strumenti da riga di comando sono spesso poco pratici o incompleti. In questo caso, uno strumento grafico di ricerca nei documenti come SeekFast, Recoll o DocFetcher è generalmente più adatto.

 

La regola più semplice è questa: usa gli strumenti da riga di comando per i file di testo tecnici e uno strumento di ricerca nei documenti quando devi cercare all'interno di veri documenti con anteprime.

 

 

Domande frequenti

 

1. Come posso cercare testo in tutti i file di una cartella Linux?
grep -R è il comando standard. Ad esempio: grep -RIn "text" /path/to/folder. Funziona meglio con file di testo semplice, codice sorgente, log e file di configurazione.

 

2. Come posso cercare anche nelle sottocartelle?
Usa la ricerca ricorsiva con grep -R. Il comando grep -RIn "text" ~/Documents cerca nella cartella Documents e nelle relative sottocartelle, ignora i file binari e mostra i numeri di riga.

 

3. Come posso cercare solo in determinati tipi di file?
Usa --include. Ad esempio: grep -RIn --include="*.txt" "text" ~/Documents. Puoi ripetere --include per più estensioni.

 

4. Come posso escludere cartelle dalla ricerca con grep?
Usa --exclude-dir. Ad esempio: grep -RIn --exclude-dir=".git" --exclude-dir="node_modules" "text" ~/project.

 

5. Come posso cercare più parole possibili?
Usa le espressioni regolari estese con grep -E. Ad esempio: grep -RInE "error|failed|timeout" ~/logs.

 

6. Perché grep non trova il testo all'interno dei miei file PDF o Word?
grep è progettato per il testo semplice. I file PDF, Word, LibreOffice ed Excel memorizzano il testo in formati più complessi, quindi grep potrebbe non trovare le corrispondenze o mostrare risultati illeggibili. Per questi file, usa uno strumento di ricerca nei documenti.

 

7. Qual è il modo migliore per cercare all'interno di file PDF, Word e LibreOffice su Linux?
Usa uno strumento di ricerca che riconosca i formati dei documenti. SeekFast è pratico quando desideri anteprime e risultati ordinati per pertinenza. Recoll e DocFetcher sono valide alternative open source se preferisci una ricerca desktop indicizzata.

 

8. SeekFast funziona su Linux?
Sì. SeekFast dispone di una versione per Linux e può essere utilizzato per cercare all'interno di molti formati di documenti tramite un'interfaccia grafica.

 

9. Devo usare grep, ripgrep o SeekFast?
Usa grep per le normali ricerche nel testo semplice. Usa ripgrep per ricerche ricorsive veloci nelle cartelle di codice e testo. Usa SeekFast quando devi cercare all'interno di PDF, Word, LibreOffice, Excel e altri documenti con anteprime.

 

10. Posso cercare all'interno dei PDF dalla riga di comando?
Sì. Usa pdfgrep per i file PDF. Ad esempio: pdfgrep -RIn "text" ~/Documents. Per le cartelle contenenti documenti di formati diversi, uno strumento grafico di ricerca nei documenti è generalmente più pratico.

Informazioni sull’autore
Dimitar Stamenov è uno sviluppatore software e imprenditore con oltre 25 anni di esperienza nel mondo della tecnologia. Ha creato strumenti come SeekFast (una delle app di ricerca desktop più popolari), Preslav ERP (un sistema aziendale di gestione d’impresa) e SEORanks (un sito di riferimento per gli strumenti SEO). Ha anche tenuto lezioni presso importanti accademie tecnologiche, tra cui Telerik Academy e Software University Sofia. Sul blog di SeekFast, Dimitar condivide suggerimenti, idee e soluzioni pratiche per aiutare i lettori a sfruttare al meglio il loro software e a portare a termine le attività più velocemente.

Lascia un commento

Your email address will not be published. Required fields are marked *