Tutorial sulle espressioni regolari di Linux: esempio di grep regex
Cosa sono le espressioni regolari di Linux?
Espressioni regolari di Linux sono caratteri speciali che aiutano a cercare dati e a trovare pattern complessi. Le espressioni regolari sono abbreviate come 'regexp' o 'regex'. Sono utilizzate in molti programmi Linux come grep, bash, rename, sed, ecc.
Tipi di espressioni regolari
Per facilità di comprensione impariamo i diversi tipi di Regex uno per uno.
Clicchi qui se il video non è accessibile
Espressioni regolari di base
Alcuni dei comandi comunemente usati con le espressioni regolari sono tr, sed, vi e grep. Di seguito sono elencate alcune delle Regex di base.
Simbolo | Descriptioni |
---|---|
. | sostituisce qualsiasi carattere |
^ | corrisponde all'inizio della stringa |
$ | corrisponde alla fine della stringa |
* | corrisponde a zero o più volte il carattere precedente |
\ | Rappresentano caratteri speciali |
() | Raggruppa le espressioni regolari |
? | Corrisponde esattamente a un carattere |
Vediamo un esempio.
Esegui cat sample per vedere il contenuto di un file esistente
Cerca contenuti contenenti la lettera "a".
'^' corrisponde all'inizio di una stringa. Cerchiamo il contenuto che INIZIA con a
Vengono filtrate solo le righe che iniziano con un carattere. Le righe che non contengono il carattere 'a' all'inizio vengono ignorate.
Diamo un'occhiata a un altro esempio:
Seleziona solo le righe che terminano con t utilizzando $
Intervallo Espressioni regolari
Queste espressioni ci dicono il numero di occorrenze di un carattere in una stringa. Sono
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ù |
Esempio:
Filtra tutte le righe che contengono il carattere 'p'
Vogliamo verificare che il carattere 'p' appaia esattamente 2 volte in una stringa, una dopo l'altra. Per questo la sintassi sarebbe:
cat sample | grep -E p\{2}
Nota: devi aggiungere -E con queste espressioni regolari.
Espressioni regolari estese
Queste espressioni regolari contengono combinazioni di più di un'espressione. Alcuni di loro sono:
Espressione | Descrizione |
---|---|
\+ | Corrisponde a una o più occorrenze del carattere precedente |
\? | Corrisponde a zero o una occorrenza del carattere precedente |
Esempio:
Ricerca di tutti i caratteri 't'
Supponiamo di voler filtrare le righe in cui il carattere 'a' precede il carattere 't'
Possiamo usare il comando like
cat sample|grep "a\+t"
Espansione del tutore
La sintassi per l'espansione delle parentesi graffe è una sequenza o un elenco di elementi separati da virgole all'interno delle parentesi graffe "{}". Gli elementi iniziali e finali di una sequenza sono separati da due punti “..”.
Qualche esempio:
Negli esempi precedenti, il comando echo crea stringhe utilizzando l'espansione delle parentesi graffe.
Sommario:
- Le espressioni regolari sono un insieme di caratteri utilizzati per verificare i modelli nelle stringhe
- Sono anche chiamati "regexp" e "regex"
- È importante imparare le espressioni regolari per scrivere script
- Alcune espressioni regolari di base sono:
Simbolo | Descriptioni |
---|---|
. | sostituisce qualsiasi carattere |
^ | corrisponde all'inizio della stringa |
$ | corrisponde alla fine della stringa |
- Alcune espressioni regolari estese sono:
Espressione | Descrizione |
---|---|
\+ |
Corrisponde a una o più occorrenze del carattere precedente |
\? | Corrisponde a zero o una occorrenza del carattere precedente |
- Alcune espressioni regolari a intervalli sono:
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ù |
- L'espansione delle parentesi graffe viene utilizzata per generare stringhe. Aiuta a creare più stringhe da una.