作为学习bash脚本的项目的一部分,我正在撰写RSS播客下载器。我已经看到很多使用cURL,wget等工具的例子,并使用grep,sed和awk进一步解析XML。这是一个来自commandlinefu的单线工作。
curl $1 | grep -E "http.*\.mp3" | sed "s/.*\(http.*\.mp3\).*/\1/" | xargs wget
这是解析RSS寻找MP3的最有效方法吗? RSS源包含数百个MP3的链接,我的下一个目标是仅下载最新的10个。
答案 0 :(得分:1)
从广义上讲,使用XML RSS格式,您可以使用xpath
实用程序来选择所需的特定节点。
如果示例sed
语句是偶然生成mp3网址的有序列表,您可以使用head
或tail
实用程序来提取第一个或最后10个项目(取决于排序顺序)。但是,请注意,在不使用XML感知解析器的情况下盲目解析订阅源可能会导致解决方案过于脆弱。
没有更多细节,很难更具体。