Cosa sono le espressioni regolari di Linux?
Le espressioni regolari di Linux sono caratteri speciali che aiutano a cercare dati e ad abbinare modelli complessi. Le espressioni regolari vengono abbreviate in "regexp" o "regex". Sono utilizzati in molti programmi Linux come grep, bash, rename, sed, ecc.
Tipi di espressioni regolari
Per facilità di comprensione, impariamo uno per uno i diversi tipi di Regex.
- Espressioni regolari di base
- Intervallo espressioni regolari
- Espressioni regolari estese
- Sommario
Fare clic 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 elencati alcuni dei Regex di base.
Simbolo | Descrizioni |
---|---|
. | sostituisce qualsiasi carattere |
corrisponde all'inizio della stringa | |
$ | corrisponde alla fine della stringa |
* | corrisponde a zero o più volte il carattere precedente |
\ | Rappresenta caratteri speciali |
() | Raggruppa espressioni regolari |
? | Corrisponde esattamente a un carattere |
Vediamo un esempio.
Esegui cat sample per vedere il contenuto di un file esistente
Cerca contenuto contenente la lettera "a".
" ^ " corrisponde all'inizio di una stringa. Cerchiamo contenuti che INIZIANO con un file
Vengono filtrate solo le righe che iniziano con il carattere. Le righe che non contengono il carattere "a" all'inizio vengono ignorate.
Diamo un'occhiata a un altro esempio:
Seleziona solo quelle righe che terminano con t usando $
Intervallo espressioni regolari
Queste espressioni ci dicono il numero di occorrenze di un carattere in una stringa. Sono
Espressione | Descrizione |
---|---|
{n} |
Corrisponde esattamente al carattere precedente che appare "n" volte |
{n, 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: è necessario 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 comandi come
cat sample|grep "a\+t"
Espansione del tutore
La sintassi per l'espansione delle parentesi graffe è una sequenza o un elenco separato da virgole di elementi all'interno di parentesi graffe "{}". Gli elementi iniziali e finali in 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 controllare 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 | Descrizioni |
---|---|
. | 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 di intervallo sono:
Espressione | Descrizione |
---|---|
{n} | Corrisponde esattamente al carattere precedente che appare "n" volte |
{n, 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.