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

Re: espressioni regolari



Claudio wrote:
E' possibile sostituire soltanto l'ennesima ricorrenza di un carattere
in una stringa di testo con un'altro carattere utilizzando le
espressioni regolari?

{n} <- la n-esima ripetizione

$ echo testotutto | \
  sed "s/\(\([^t]*t\)\{3\}\)\(.*\)/\1SOSTITUISCIMI\3/" | \
  sed "s/.SOSTITUISCIMI/X/"

-----------------------^

Per ora mi è venuta in mente questo tipo di soluzione:
1) l'echo stampa la stringa in cui cercare l'occorrenza n-esima (nell'esempio è la 3°, il numero è indicato dalla freccia ... solo questo valore va sostituito con la posizione in cui deve avvenire la sosituzione)
2) il primo sed individua il punto successivo alla sostituzione
3) il secondo sed sostituisce il carattere trovato

Ciao
Davide

--
Dizionari: http://linguistico.sourceforge.net/wiki
Conoscere il TC: http://www.no1984.org
Strumenti per l'ufficio: http://it.openoffice.org
Sistema operativo: http://www.it.debian.org
Browser: http://www.mozilla.org/products/firefox
Client di posta: http://www.mozilla.org/products/thunderbird
GNU/Linux User: 302090: http://counter.li.org
--
Non autorizzo la memorizzazione del mio indirizzo di posta a chi usa
outlook: non voglio essere invaso da spam



Reply to: