1
我想將一個變量傳遞給包含XML的sed。Sed和變量包含XML
從這個XML中,我想提取包含在<image_viewer> </image_viewer>
;和<image_thumb_url> </image_thumb_url>
每個標籤之間都有一個HTML鏈接,它們之間沒有空格;每個標籤+鏈接都在一行上。
看來我doining是完全錯誤的,我很新來砸......
base64 -w0 "$1" > "$1".64.jpg
apiXml=$(curl -v -F "upload=<$1.64.jpg" -F key="$apiKey" -F format=xml "$apiUrl")
imgView=$(echo "$apiXml" | sed 's/<image_viewer>\(.*\)<\/image_viewer>/\1/')
imgThumb=$(echo "$apiXml" | sed 's/<image_thumb_url>\(.*\)<\/image_thumb_url>/\1/')
imgLink="[url=$imgView][img]$imgThumb[/img][/url]"
echo "$imgLink"
任何建議將受到歡迎,謝謝!
你的'sed'對我來說看起來很好。你可以編輯你的預期和實際輸出到問題中嗎?另外,你有沒有嘗試將XML保存到文件並在其上運行'sed'? – ThisSuitIsBlackNot
如果可能的話,我希望不保存到文件,所以我沒有嘗試保存到文件。我的輸出是每個sed命令上的整個XML文件,最後的回顯只是給出了[url =] [img] [/ img] [/ url],所以它幾乎不輸出sed。我希望將XML中包含的鏈接提取出來並放在[url .../url]標籤之間。 – yaka
我並不是說你需要改變你的程序來寫入文件,我的意思是作爲一個故障排除步驟。 'sed's/foo/bar /''會爲它輸入的每一行輸出一行,所以如果你的XML長度爲500行,'sed'的輸出也將是500行。 – ThisSuitIsBlackNot