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: