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



-- 
Per REVOCARE l'iscrizione alla lista, inviare un email a 
[email protected] con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a [email protected]

To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Rispondere a