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.


--
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]
Archive: http://lists.debian.org/[email protected]

Rispondere a