Re: [BASH] script di sostituzione tra tag
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
Reply to: