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

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: