Esercitazione sulle espressioni regolari di Linux: esempio Grep Regex

Sommario:

Anonim

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.