[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

espressioni regolari e \



Ciao a tutti, mi sto impratichendo un po' di espressioni regolari usati
tramite script bash (con sed, grep...) e mi imbatto sempre in problemi
di escape di alcuni caratteri. Ad esempio oggi dovevo usare nelle
espressioni regolari la {} per trovare una ripetione di un insieme di
caratteri. Ad esempio consideriamo le ripetizioni del carattere i

echo i ii iii iiii iiiii | sed 's/i\{3,3\}/aaa/g'

mi sostituisce iii con aaa (ho dovuto metter 1 \ davanti a { e }...
bah!); ma se la voglio usare con grep ad esempio trovando tutte le righe
di un file contenente iii dovrei usare

grep i\\\{3,3\\\} /path/to/some/file

ho quindi dovuto mettere 3 \ davanti alle graffe... bah!
Poi se volessi fare la stessa cosa da uno script e mettere il contenuto
in una variabile:

#!/bin/bash
[...]
PIPPO=`grep i\\\\\{3,3\\\\\} /path/to/some/file`

ho quindi dovuto usare 5 \ davanti alle graffe!!!

...mi piacerebbe capire il perché di tutti questi escape, tutto qua,
senza tutte le volte trovare la corretta sintassi empiricamente.

Grazie mille

Piviul



Reply to: