Come usare grep su Linux

Il comando grep è uno strumento basilare e versatile nel mondo Linux, pensato per filtrare e trovare testo all’interno di file o flussi generati da altri comandi. Il suo nome è l’acronimo di Global Regular Expression Print; in pratica, permette di cercare “globalmente” corrispondenze e “stampare” le linee che le contengono.

Per usare grep si parte semplicemente con:

Questo comando restituisce tutte le righe in cui compare “parola” in test.txt. È possibile richiamare grep anche senza specificare un file: in questo caso, il testo viene ricevuto dallo standard input. Per esempio, filtrando l’output di un altro programma:

grep supporta le espressioni regolari, ovvero modelli più sofisticati rispetto alla semplice stringa: si possono usare metacaratteri come ^ per l’inizio della riga, $ per la fine o simboli di contesto all’interno di parole. Questo lo rende particolarmente potente quando serve cercare pattern complessi come indirizzi IP, nomi di file o log con formati precisi.

Tra le opzioni più frequenti ci sono -i per ignorare maiuscole e minuscole, -n per mostrare i numeri di riga, -l per elencare solo i nomi dei file in cui compare la parola, e -v per invertire la ricerca, mostrando dunque le righe che non corrispondono. Molti preferiscono anche -r o -R per effettuare ricerche ricorsive all’interno di intere directory. Si può così scandagliare in profondità l’albero delle cartelle senza ricorrere a comandi aggiuntivi.
Un aspetto importante riguarda l’uso delle espressioni regolari con caratteri che la shell potrebbe interpretare, come le parentesi oppure il punto. Per evitare sorprese è prudente circondare il pattern con virgolette singole:

In questo caso -E abilita le espressioni regolari estese, utili per identificare righe che rappresentano formati noti, come gli indirizzi IP. Grep è anche ottimo in combinazione con find o xargs per automatizzare ricerche su grandi raccolte di file. Un mix molto comune è:

In alternativa, con xargs:

Grep è quindi una colonna portante nel bagaglio di chi lavora su Linux: consente indagini rapide su log, configurazioni o semplici documenti, integrandosi con pipeline e script grazie all’uso delle espressioni regolari.

Potrebbe interessarti