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

Re: aiuto con sed/awk



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.


Reply to: