In qualità di amministratore di sistema su un sistema Linux, potresti dover analizzare un enorme file di registro in Linux. Potrebbe sembrare un compito scrupoloso, specialmente nei casi in cui devi abbinare i modelli. Per fortuna, il comando grep in Linux è un vantaggio per tali situazioni. Se ti stai chiedendo cos’è il comando grep e come funziona, di seguito abbiamo preparato una semplice guida per aiutarti a comprendere questo utile comando di Linux.
Sommario
Cos’è il comando grep in Linux?
Il comando grep è un potente strumento da riga di comando in Linux usato per cercare e filtrare pattern o stringhe specifici in un file, directory, o anche nell’output di altri comandi. Forse ti starai chiedendo quale sia il suo nome insolito; beh, sta per”Global Regular Expression Print”. Fu introdotto per la prima volta da Ken Thompson nel 1973 per il sistema operativo Unix. Con la sua versatilità e facilità d’uso, il comando grep è uno strumento indispensabile nell’arsenale di ogni utente Linux.
In genere, il comando grep è preinstallato sulla maggior parte delle distribuzioni Linux, ma se lo trovi mancante sul tuo sistema, installalo usando i seguenti comandi:
Installa su sistemi basati su Debian:
sudo apt install grep
Installa su sistemi basati su Fedora:
sudo yum install grep
Installa su sistemi basati su Arch:
sudo pacman-S grep
Comando grep: sintassi e opzioni
L’uso del comando grep in Linux è piuttosto semplice, grazie alla sua semplice sintassi insieme alle molteplici opzioni con cui giocare. La sintassi per utilizzare il comando grep è:
grep
Nella sintassi precedente, sostituisci
Come usare il comando grep in Linux
L’uso del comando grep è facile e segue una sintassi semplice. Tutto quello che devi fare è fornire il nome del file o la directory che vuoi cercare e il modello che vuoi abbinare. Per il modello, puoi usare le parole esatte o le espressioni regolari. Ti starai chiedendo: cos’è”espressione regolare”qui? Le espressioni regolari sono stringhe speciali che vengono interpretate in modo diverso se utilizzate in aree specifiche. Vengono sostituiti con tutte le possibili combinazioni corrispondenti al modello.
Supponiamo, ad esempio, che tu voglia abbinare gli indirizzi email, puoi usare l’espressione regolare”(.+)\@(.+)\n”. Sembra complicato? Analizziamolo:
(.+) corrisponde a qualsiasi carattere tranne le nuove righe\@ controlla se il simbolo”@”è presente nella frase data.
Ora che sai cosa sono le espressioni regolari e come funziona il comando grep, vediamo ora come utilizzare il comando grep in Linux.
Ricerca di stringhe nei file con il comando grep
Il modo più comune per usare grep è cercare stringhe specifiche in un file. La sintassi di base per cercare con il comando grep nei file è:
grep
Nella parte
grep”mango”fruits.txt
Se vuoi per cercare ignorando maiuscole e minuscole, quindi utilizzare il flag-i con il comando grep per l’esempio precedente:
grep-i”mango”fruits.txt
Cerca in più file con grep
Con il comando grep, puoi non solo cercare in un singolo file ma anche in più file. Questa funzione diventa particolarmente utile quando è necessario esaminare più file di grandi dimensioni. La sintassi per cercare stringhe/pattern in più file con il comando grep è:
grep
Ad esempio, se vuoi per cercare la stringa “student”, all’interno dei file “student1.txt” e “student2.txt”, usa questo comando:
grep”John”student1.txt student2.txt
Cerca tutti i file in una directory con grep
Supponiamo che tu debba cercare una stringa e non ricordi il nome del file dove esiste. Puoi ovviamente scrivere tutti i nomi di file presenti nella directory, ma invece puoi usare semplicemente il carattere jolly “*” come mostrato:
grep
Ad esempio, se vuoi cercare la stringa “apple” in tutti i file presenti nella directory, utilizza questo comando:
grep”apple”*
Se vuoi cercare solo in tipi di file specifici, usa questo sintassi:
grep
Ad esempio, se vuoi cercare la parola”mango”solo nei file.txt, usa questo comando:
grep”mango”*.txt
Utilizzo dell’espressione regolare con grep
Il vantaggio principale dell’utilizzo del comando grep rispetto ad altri strumenti/comandi è la capacità di elaborare espressioni regolari per cercare contenuto. Includere semplicemente il flag-e con il comando grep per eseguire la ricerca utilizzando le espressioni regolari:
grep-e
Ad esempio, se si desidera filtrare gli ID e-mail usa questo comando:
grep-e”(.+)\@(.+)”emails.txt
Cerca più parole chiave utilizzando il comando grep
Ormai devi essere a tuo agio nella ricerca per alcuni schemi o parole usando grep. Ma cosa succede se devi cercare più parole/modelli? Bene, grep ti ha coperto anche per quello. Per cercare più parole utilizzando il comando grep, utilizzare questa sintassi:
grep”
Qui, \| specifica grep per stampare il risultato se una delle due query corrisponde. Ad esempio, se vuoi cercare le parole”mela”e”mango”nel file”frutta.txt”, usa questo comando:
grep”mela\|mango”frutta.txt
Conta risultati corrispondenti using grep Command
A volte, potrebbe essere necessario conoscere il numero di risultati corrispondenti. Per questo, puoi usare il flag-c con il comando grep:
grep-c”pattern_to_search”filename
Ad esempio, se hai bisogno di vedere quanti ID email ci sono nel file student1.txt, usa questo comando:
grep-E-c”(.+)@(.+)”student1.txt
Se vuoi vedere il numero di righe che non corrispondono alla query di ricerca , aggiungi semplicemente il flag-v insieme a-c:
grep-v-E-c”(.+)@(.+)”student1.txt
Utilizzo del comando grep con Shell Pipes
Il modo in cui le shell pipe funzionano in Linux è che inviano l’output di un comando a un altro comando come input. La sintassi di base per usare le shell pipe è:
first_command | second_command
Con le shell pipe, filtrare l’output di alcuni comandi con il comando grep diventa molto più semplice, invece di scorrere costantemente e cercare qualcosa. Per filtrare una parola o un modello specifico da un output di comando specifico, è sufficiente sostituire
first_command | grep
Ad esempio, se vuoi vedere quante volte il comando gcc è stato eseguito in precedenza, puoi usare questo comando:
history | grep gcc
Questo mostrerà solo i risultati contenenti la parola”gcc”, come mostrato nell’immagine qui sotto.
Utilizzo del comando grep in Linux
Il comando grep è uno strumento essenziale per gli utenti che desiderano cercare schemi o parole specifici in vari file, directory o anche in altri output di comandi Linux. Una volta acquisite tutte le opzioni e la sintassi essenziali, il comando grep può aiutarti ad aumentare esponenzialmente la tua produttività. Mentre sei qui, dai un’occhiata alle nuove funzionalità di Ubuntu 23.04.
Domande frequenti sul comando Grep in Linux
Il comando grep fa distinzione tra maiuscole e minuscole durante la ricerca di pattern?
Per impostazione predefinita, grep funziona con distinzione tra maiuscole e minuscole. Ma, se hai bisogno di cercare ignorando maiuscole e minuscole, usa il flag-i.
Come posso cercare nei file compressi?
Zgrep, una versione modificata di grep può essere usata per cercare nei file compressi. La sintassi per cercare nei file compressi usando il comando zgrep è: zgrep”
Lascia un commento
L’anno scorso, MSI ha lanciato il Titan GT77 con l’Intel Core i9-12900HX e l’RTX 3080 Ti Laptop GPU, ed è stato il laptop da gioco più potente sulla faccia del pianeta. È stato il più pesante dei picchiaduro […]
Sono passati alcuni mesi dal lancio della serie iPhone 14 ed è stato dimostrato che è l’anno dei modelli Pro. Ma se hai intenzione di puntare sui frilly Pro, l’importo da sborsare […]
Wondershare ha sviluppato alcuni dei migliori software e strumenti per semplificare la nostra vita e i nostri sforzi creativi negli ultimi anni. In particolare, Wondershare Filmora ha ricevuto numerosi riconoscimenti. Ha ricevuto il premio Video Editing Leader […]