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

Espressioni regolari di base

Cerca contenuti contenenti la lettera "a".

Espressioni regolari di base

'^' corrisponde all'inizio di una stringa. Cerchiamo il contenuto che INIZIA con a

Espressioni regolari di base

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:

Espressioni regolari di base

Seleziona solo le righe che terminano con t utilizzando $

Espressioni regolari di base

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'

Intervallo Espressioni regolari

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}

Intervallo Espressioni regolari

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'

Espressioni regolari estese

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"

Espressioni regolari estese

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:

Espansione del tutore

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.

Newsletter quotidiana di Guru99

Inizia la giornata con le ultime e più importanti notizie sull'intelligenza artificiale, pubblicate in questo momento.