Grep avanzato con le espressioni regolari
Applichi pattern regex complessi con «grep» per eseguire ricerche testuali altamente mirate ed efficienti nei file.
Grep avanzato con le espressioni regolari è una lezione Linux Command Line & Bash Scripting Mastery gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Linux Command Line & Bash Scripting Mastery, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Linux Command Line & Bash Scripting Mastery include 4 lezioni in totale.
I superpoteri delle regex di grep
Benvenuto nelle funzionalità avanzate di grep con le regex! Nella lezione precedente abbiamo imparato a conoscere le espressioni regolari (regex). Ora ne sfrutteremo appieno il potenziale all'interno del potente comando grep.
grep è lo strumento di riferimento per cercare schemi di testo nei file. Combinandolo con le regex avanzate, può individuare esattamente ciò che cerca, per quanto complesso sia lo schema.
Abilitare le regex estese (-E)
Per impostazione predefinita, grep usa le espressioni regolari di base (BRE). Per usare funzionalità più avanzate come +, ?, | e (), è necessario abilitare le espressioni regolari estese (ERE).
È possibile farlo usando l'opzione -E oppure il comando egrep, che in sostanza equivale a grep -E. Creiamo un file di esempio su cui lavorare:
echo "apple
banana
appanana
orange
app" > fruits.txtQuantificatori: una o più (+)
Il quantificatore + corrisponde a una o più occorrenze del carattere o del gruppo precedente. È molto utile quando si prevede che uno schema si ripeta almeno una volta.
Ad esempio, per trovare le righe con una 'p' seguita da una o più 'a', si usa pa+.
grep -E 'pa+' fruits.txtQuantificatori: zero o più (*)
Il quantificatore * corrisponde a zero o più occorrenze del carattere o del gruppo precedente. È utile quando un carattere può essere presente, ma non è strettamente necessario.
Troviamo le righe con una 'b' seguita da zero o più 'a':
grep -E 'ba*' fruits.txtQuantificatori: zero o una (?)
Il quantificatore ? corrisponde a zero o una occorrenza del carattere o del gruppo precedente. Lo si può considerare un modo per rendere facoltativo un carattere.
Vuole trovare sia 'color' sia 'colour'? Può rendere facoltativa la 'u':
echo "color
colour
coor" > words.txt
grep -E 'colou?r' words.txtConteggi specifici con {} (parentesi graffe)
Per un controllo ancora maggiore, è possibile specificare conteggi esatti o intervalli usando le parentesi graffe {}:
a{3}: esattamente tre 'a'.a{2,}: due o più 'a'.a{1,3}: da una a tre 'a'.
Troviamo le righe con la 'a' ripetuta esattamente due volte:
grep -E 'a{2}' fruits.txtAncore: inizio e fine (^, $)
Le ancore non corrispondono ai caratteri, ma alle posizioni. L'ancora ^ corrisponde all'inizio di una riga, mentre $ corrisponde alla fine di una riga.
Questo è fondamentale per assicurarsi che lo schema corrisponda all'intera riga o inizi/termini esattamente nel punto desiderato.
^apple: righe che iniziano con 'apple'.banana$: righe che terminano con 'banana'.^apple$: righe contenenti solo 'apple'.
grep -E '^app' fruits.txtAlternanza con OR (|)
Il simbolo | (pipe) funziona come operatore OR. Consente di far corrispondere uno schema O un altro. È estremamente utile per cercare contemporaneamente più parole o frasi distinte.
Ad esempio, per trovare le righe contenenti 'apple' oppure 'orange':
grep -E 'apple|orange' fruits.txtRaggruppare gli schemi con ()
Le parentesi () servono a raggruppare parti di un'espressione regolare. In questo modo è possibile applicare quantificatori o alternanza a un intero gruppo, non solo a un singolo carattere.
Ad esempio, per trovare 'ana' una o più volte dopo 'b':
grep -E 'b(ana)+' fruits.txtVerifica rapida: grep avanzato
Dato il file data.txt contenente:
cat
cats
catt
catterpillar
dog
Quale comando troverebbe correttamente le righe che contengono 'cat' seguito da zero o più 't'?
Riepilogo: la potenza delle regex di grep
Ha acquisito padronanza delle tecniche avanzate di grep usando le espressioni regolari estese! Abbiamo visto:
- L'uso di
-Eper le funzionalità delle regex estese. - Quantificatori:
+(una o più),*(zero o più),?(zero o una) e{}per conteggi specifici. - Ancore:
^(inizio della riga) e$(fine della riga). - Alternanza
|per le condizioni 'OR'. - Raggruppamento degli schemi con
().
Questi strumenti consentono di eseguire ricerche nel testo incredibilmente precise e flessibili, trasformandola in un vero mago della riga di comando!
Domande Frequenti
La lezione «Grep avanzato con le espressioni regolari» è gratuita?
Sì — il testo completo di «Grep avanzato con le espressioni regolari» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Linux Command Line & Bash Scripting Mastery, passa a CoddyKit PRO. Il corso Linux Command Line & Bash Scripting Mastery include 4 lezioni in totale.
Cosa imparerò in «Grep avanzato con le espressioni regolari»?
Applichi pattern regex complessi con «grep» per eseguire ricerche testuali altamente mirate ed efficienti nei file. Eserciti Linux Command Line & Bash Scripting Mastery con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Linux Command Line & Bash Scripting Mastery?
Non è richiesta alcuna esperienza precedente. Linux Command Line & Bash Scripting Mastery su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Grep avanzato con le espressioni regolari»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Linux Command Line & Bash Scripting Mastery?
Sì. Ogni lezione Linux Command Line & Bash Scripting Mastery include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Introduzione alle espressioni regolari (Regex)
- Grep avanzato con le espressioni regolari
- Combinare le espressioni regolari con sed/awk
- Gruppi di cattura, backreference e sostituzione