com awk :
... | awk -F'"' '{part=part substr($2,2) ","} \
END {sub(",$", "", part); print "http://x.y.z/" part ".mp3"}'
-
-F'"' define o separador de campo como "
-
part=part substr($2,2) ","} obtém o segundo campo e substr($2,2) retira ov inicial da sequência, e o resultado é salvo com a adição de , como variável part
-
O END {sub(",$", "", part); print "http://x.y.z/" part ".mp3"} chunk é executado após a análise de todos os registros, aqui estamos retirando o último , da variável part e imprimindo a saída formatada desejada
Exemplo:
% cat file.txt
<div id="v3060000-3062005" class="BLAH...>
<div id="v50001027-50002018" class="BLAH...>
<div id="v907200-907202" class="BLAH...>
<div id="v20024011-20024012" class="BLAH...>
% awk -F'"' '{part=part substr($2,2) ","} END {sub(",$", "", part); print "http://x.y.z/" part ".mp3"}' file.txt
http://x.y.z/3060000-3062005,50001027-50002018,907200-907202,20024011-20024012.mp3