mi rispondo da solo, forse ho trovato l'inghippo....
applico il cambio su più righe (quello che vedi qui sotto devi metterlo
tutto su una riga):
$ echo -e "[code] abc\n [i]def\n[/i]\n ghi [/code]" \
| tr "\n" "æ" | sed \
"s/\(\[code\][^\[]*\)\[i\]\([^\[]*\)\[\/i\]\([^\[]*\[\/code\]\)/\
\1<\2>\3/" | tr "æ" "\n"
in questo caso
[code]nameserver [i]<ip_dns_primario_fornito_dal_provider>[/i]
nameserver [i]<ip_dns_secondario_fornito_dal_provider>[/i][/code]
dopo il tr ho una stringa continua del tipo
[code]testo[i]testo[/i]testo[i]testo[/i][/code]
e il sed non riesce a matchare visto che lui ha solo una coppia di
[i][/i]...
non è possibile fare un match del tipo {uno o più [i]} visto che si
perderebbe l'info tra i [i] (giusto? ) quindi al massimo il caso di 2[i][/i]
interni in un [code] si dovrebbero risolvere duplicando il pezzo
\[i\]\([^\[]*\)\[\/i\]\ e nella parte sostitutiva del sed mettere
\1<\2><\3>\4 ...
sto provando ma non funziona :-(
idee?
_________________________________________________________________
Windows Live OneCare: tutto per la cura del tuo PC ! Provalo Gratis!
http://onecare.live.com/standard/it-it/default.htm
--
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]