Come trovare una parola specifica in un file su Linux

So finden Sie unter Linux ein bestimmtes Wort in einer Datei
⏱️ 3 min read

Per impostazione predefinita, la maggior parte degli strumenti di ricerca esamina i nomi dei file, non il contenuto dei file. Tuttavia, il più famoso programma di ricerca GNU, grep, cercherà all’interno dei file con i flag corretti. Qui ti mostreremo come trovare parole specifiche in un file su Linux.

Utilizzo di grep per trovare una parola specifica in un file

Per impostazione predefinita, grep cerca nel contenuto dei file così come nei loro nomi di file. È incluso nella maggior parte dei sistemi Linux ed è generalmente identico in tutte le distribuzioni. Detto questo, i box Linux più piccoli o meno potenti potrebbero preferire eseguire un comando diverso, come ack.

A seconda di come il file è codificato, grep potrebbe non essere sempre in grado di guardare all’interno. Ma per la maggior parte dei formati basati su testo, grep può eseguire la scansione del testo del file per il modello specificato.

Il -R flag imposta grep in modalità ricorsiva, navigando attraverso tutte le directory contenute nella directory specificata. Il -w flag cerca corrispondenze di parole intere. Ciò significa che “rosso” corrisponderà solo a “rosso” circondato da spazi vuoti e non “ridondante” o “stanco”. Il -e flag precede il pattern da cercare. Supporta le espressioni regolari per impostazione predefinita.

Per velocizzare grep, puoi usare il --exclude e --include flag per limitare la ricerca a determinati tipi di file. Per esempio, --exclude=*.csv non cercherà in nessun file con estensione .csv. --include=*.txt, d’altra parte, cercherà solo nei file con estensione .txt. Il flag può essere aggiunto immediatamente dopo il comando grep, come mostrato di seguito:

Puoi anche escludere le directory specificate seguendo il formato seguente:

Questo comando non cercherà in nessuna directory nella directory di lavoro attuale denominata dir1, dir2 o corrispondente al modello * _old, eliminandole dal processo di ricerca. Eseguirà la ricerca ricorsiva di parole complete specificata su tutti gli altri file nella directory di lavoro attuale.

Utilizzo di Trova per trovare una parola specifica in un file

Trova testo nel file Linux Trova Grep

Mentre il find la sintassi del comando è più complicata di grep, alcuni la preferiscono.

Questo comando utilizzerà find’s -exec flag per passare i file trovati a grep per la ricerca. Con una disposizione intelligente della sintassi, è possibile utilizzare la ricerca più veloce del file system di find per individuare i tipi di file specifici in cui si desidera cercare, quindi reindirizzarli a grep per cercare all’interno dei file.

Nota che find guarda solo i nomi dei file, non i contenuti. Ecco perché grep è necessario per cercare il testo e il contenuto del file. I normali flag grep dovrebbero essere pienamente operativi dall’interno di -exec bandiera.

Utilizzo di ack per trovare una parola specifica in un file

Il comando ack è probabilmente lo strumento di ricerca più veloce, ma non è così popolare come le opzioni precedenti. Il comando seguente cercherà nella directory corrente.

Se desideri eseguire la ricerca all’interno di un file o di una directory specifici, puoi aggiungere quel file o il percorso completo alla ricerca.

Conclusione

Per la maggior parte delle persone nella maggior parte delle situazioni, grep è il miglior strumento di ricerca ampiamente disponibile. Puoi anche guardare altri strumenti di ricerca, come RipGrep, per opzioni di ricerca più veloci

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar di Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Potrebbero interessarti anche...

Subscribe
Notificami
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x