Tutorial sulle espressioni regolari di Linux: esempio di grep regex
โก Riepilogo intelligente
Le espressioni regolari di Linux sono sequenze di caratteri speciali che cercano dati e corrispondono a modelli complessi utilizzando strumenti come grep, sed e vi, impiegando forme di base, a intervalli, estese e con parentesi graffe per filtrare il testo con precisione.

Le espressioni regolari sono una delle caratteristiche piรน potenti di Linux Strumenti di testo che consentono di trovare, filtrare e trasformare i dati con modelli compatti. Questa pagina illustra le forme base, a intervalli ed estesa, oltre all'espansione delle parentesi graffe, con esempi pratici di grep.
Cosa sono le espressioni regolari di Linux?
Le espressioni regolari di Linux sono caratteri speciali che aiutano a cercare dati e a trovare corrispondenze con modelli complessi. Le espressioni regolari vengono abbreviate in 'regexp' o 'regex'. Sono utilizzate in molti programmi Linux come grep, bash, rename, sed e altro ancora.
Tipi di espressioni regolari
Per facilitare la comprensione, analizziamo uno per uno i diversi tipi di espressioni regolari. Questa pagina tratta le espressioni regolari di base, a intervalli ed estese, e si conclude con l'espansione delle parentesi graffe.
Espressioni regolari di base
Alcuni dei comandi comunemente usati che funzionano con le espressioni regolari sono tr, sed, vie grep. La tabella seguente elenca alcune delle espressioni regolari di base.
| Simbolo | Descrizione |
|---|---|
| . | Sostituisce qualsiasi carattere |
| ^ | Corrisponde all'inizio di una stringa |
| $ | Corrisponde all'estremitร di una stringa |
| * | Corrisponde zero o piรน volte al carattere precedente |
| \ | Rappresenta personaggi speciali |
| () | Raggruppa le espressioni regolari |
| ? | Corrisponde esattamente a un carattere |
Vediamo un esempio. Innanzitutto, esegui il comando `cat sample` per visualizzare il contenuto di un file esistente, come mostrato di seguito.
Successivamente, cerca il contenuto contenente la lettera 'a'. Lo screenshot qui sotto mostra grep che restituisce tutte le righe che includono una 'a'.
Il simbolo di accento circonflesso '^' corrisponde all'inizio di una stringa. L'esempio seguente cerca contenuti che iniziano con la lettera 'a'.
Vengono filtrate solo le righe che iniziano con il carattere specificato. Le righe che non contengono il carattere 'a' all'inizio vengono ignorate.
Vediamo un altro esempio. Lo screenshot qui sotto mostra nuovamente il contenuto del file di esempio prima del filtro applicato in base alla fine di una riga.
Seleziona solo le righe che terminano con la lettera 't' utilizzando il simbolo di ancoraggio '$', come mostrato di seguito.
Intervallo Espressioni regolari
Queste espressioni specificano il numero di occorrenze di un carattere in una stringa. Sono elencate di seguito.
| Espressione | Descrizione |
|---|---|
| {non} | Corrisponde esattamente al carattere precedente che appare 'n' volte |
| {m} | Corrisponde al carattere precedente che appare 'n' volte ma non piรน di m |
| {N, } | Corrisponde al carattere precedente solo quando appare "n" volte o piรน |
Ad esempio, filtra tutte le righe che contengono il carattere 'p'. Lo screenshot qui sotto mostra le righe corrispondenti.
Ora verifica che il carattere 'p' compaia esattamente due volte in una stringa, una dopo l'altra. La sintassi per farlo รจ:
cat sample | grep -E p\{2}
Il risultato della partita a intervalli รจ mostrato di seguito.
Nota: devi aggiungere -E con queste espressioni regolari.
Espressioni regolari estese
Queste espressioni regolari combinano piรน di un'espressione. Alcune di esse sono:
| Espressione | Descrizione |
|---|---|
| \+ | Corrisponde a una o piรน occorrenze del carattere precedente |
| \? | Corrisponde a zero o una occorrenza del carattere precedente |
Ad esempio, cerca tutte le occorrenze del carattere 't'. Lo screenshot qui sotto mostra il risultato.
Supponiamo di voler filtrare le righe in cui il carattere 'a' precede il carattere 't'. ร possibile utilizzare un comando come quello riportato di seguito:
cat sample|grep "a\+t"
Il risultato รจ mostrato nella seguente schermata.
Espansione del tutore
La sintassi per l'espansione delle parentesi graffe รจ una sequenza o un elenco di elementi separati da virgole racchiusi tra parentesi graffe '{}'. Gli elementi iniziale e finale di una sequenza sono separati da due punti '..'.
Alcuni esempi sono riportati di seguito.
Negli esempi precedenti, il comando echo crea stringhe utilizzando l'espansione delle parentesi graffe, producendo piรน stringhe a partire da un singolo schema.










