On 19/06/2013 10:44, MaX wrote:
con sed ho trovato questo problema: $ echo '<img src="http://url-immagine">' | sed 's/<img src=".*">/[img].*[\/img]/g' e il risultato purtroppo è questo: [img].*[/img] invece di [img]"http://url-immagine[/img] alcune idee?
Hai dimenticato di catturare la parte che ti interessa con \( \) e di ristamparlo nell'output con \1:
$ echo '<img src="http://url-immagine">' | sed 's/<img src="\(.*\)">/[img]\1[\/img]/g'
Visto che il pattern .* è greedy (si espande il più possibile fino al carattere \n), dovresti cercare [^"] cioè "qualsiasi carattere tranne le virgolette":
$ echo '<img src="http://url-immagine">' | sed 's/<img src="\([^"]*\)">/[img]\1[\/img]/g'
E già che ci sei, converrebbe prevedere la presenza di altre coppie 'key="value"' prima di '>', le quali andranno scartate:
$ echo '<img src="http://url-immagine" foo="bar">' | sed 's/<img src="\([^"]*\)"[^>]*>/[img]\1[\/img]/g'
-- Kind regards, Marco Romano.