2017-02-23 53 views
0

作爲學習bash腳本的項目的一部分,我正在撰寫RSS Podcast下載程序。我已經看到很多使用cURL,wget等工具的例子,並進一步使用grep,sed和awk解析XML。這是從commandlinefu這個工作的一個班輪。Podcast下載程序

curl $1 | grep -E "http.*\.mp3" | sed "s/.*\(http.*\.mp3\).*/\1/" | xargs wget 

這是解析RSS尋找MP3的最有效方法嗎? RSS提要包含數百個MP3的鏈接,我的下一個目標是僅下載最新的10個。

+0

我的困惑的一部分是何時使用grep/sed/awk進行解析。 – Heisenberg

回答

1

從廣義上講,使用XML RSS格式,您可以使用xpath實用程序來選擇所需的特定節點。

如果示例sed說法是,一個偶然的機會,生產MP3的URL的有序列表,你可以使用headtail公用事業拉出第一個或最後10個項目(根據排序順序)。但是,請注意,在不使用XML識別解析器的情況下盲目解析提要可能會導致一個脆弱的解決方案。

沒有更多細節,很難更具體。

+0

有興趣知道爲什麼我應該使用xml解析器。我傾聽這篇文章 - http://podcast.securityweekly.com/ - 特別是「安全週刊」和「企業安全週刊」播客。我想相應地製作我的劇本到最新的劇集。這是我計劃用bash編寫的東西,然後在Python中進行復制以嘗試學習腳本語言。如果我遇到頭痛的問題,那麼我將需要考慮跳過Python。 – Heisenberg

+0

@Heisenberg如果您看到Feed,您會注意到它使用了XML格式:'<?xml version =「1.0」encoding =「UTF-8」?>'。我誤解你的問題嗎?我希望你可以用bash腳本或Python來實現你的目標。 – user650881

+0

安全週刊使用RSS v.2.0。在此之前,我並沒有完全理解XML和RSS之間的區別。 – Heisenberg