Utilizzo delle espressioni regolari

Fish Shell:
Utilizzo delle espressioni regolari

Come fare:

Sebbene Fish Shell stesso non abbia un comando integrato per le regex, utilizza efficacemente comandi esterni come grep, sed e awk che supportano le regex, permettendoti di incorporare operazioni regex nei tuoi script.

Ricerca di Modelli di Base con grep

Cerca righe in un file che corrispondono a un modello:

grep '^[0-9]+' myfile.txt

Questo comando trova le righe che iniziano con uno o più cifre in myfile.txt.

Estrazione e Sostituzione con sed

Estrai numeri di telefono da un file:

sed -n '/\([0-9]\{3\}\)-\([0-9]\{3\}\)-\([0-9]\{4\}\)/p' contacts.txt

Sostituisci tutte le occorrenze di “foo” con “bar” in data.txt:

sed 's/foo/bar/g' data.txt

Utilizzo di string per le Regex di Base

Il comando string di Fish Shell supporta semplici operazioni regex come corrispondenza e sostituzione:

Corrispondenza di un modello in una stringa:

echo "fish 3.1.2" | string match -r '3\.[0-9]+\.[0-9]+'

Output:

3.1.2

Sostituisci le cifre che seguono ‘fish’ con ‘X.X.X’:

echo "Welcome to fish 3.1.2" | string replace -ra '([fish]+\s)[0-9\.]+' '$1X.X.X'

Output:

Welcome to fish X.X.X

Corrispondenze Avanzate con awk

Stampa la seconda colonna dei dati dove la prima colonna corrisponde a un modello specifico:

awk '$1 ~ /^a[0-9]+$/ {print $2}' datafile

Questo comando cerca righe in datafile dove la prima colonna inizia con una “a” seguita da una o più cifre e stampa la seconda colonna.

Integrando questi comandi esterni, i programmatori di Fish Shell possono sfruttare a pieno il potere delle espressioni regolari per compiti complessi di manipolazione del testo, migliorando le capacità native del shell.