2017-02-23 4 views
0

Im Rahmen eines Projekts zum Bash Scripting schreibe ich einen RSS Podcast Downloader. Ich habe viele Beispiele gesehen, die Tools wie cURL, wget und das Parsen des XML mit grep, sed und awk verwenden. Hier ist ein One-Liner von commandlinefu, der die Arbeit macht.Podcast Downloader

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

Wäre dies der effizienteste Weg, um einen RSS Parsen für MP3-Dateien suchen? Der RSS-Feed enthält Links zu mehreren hundert MP3s und mein nächstes Ziel wird nur der letzte 10.

+0

Teil meiner Verwirrung ist, wenn grep/sed/awk zum Parsen verwendet wird. – Heisenberg

Antwort

1

Im Großen und Ganzen mit einem XML RSS-Format herunterladen werden Sie die xpath Dienstprogramm verwenden könnten die spezifischen Knoten, die Sie möchten.

Wenn das Beispiel sed Aussage ist, durch Zufall, eine geordnete Liste von MP3-Urls produzieren, könnten Sie die head oder tail Dienstprogramme verwenden, um die ersten oder letzten 10 Stück herausziehen (je nach Sortierung). Beachten Sie jedoch, dass das blinde Analysieren des Feeds ohne Verwendung eines XML-fähigen Parsers zu einer fragilen Lösung führen kann.

Es ist schwierig, ohne nähere Details zu viel genauer zu sein.

+0

Interessiert zu wissen, warum ich einen xml Parser verwenden sollte. Ich höre diesen Feed - http://podcast.securityweekly.com/ - speziell die Podcasts "Security Weekly" und "Enterprise Security Weekly". Ich möchte mein Skript nur nach den neuesten Folgen gestalten. Dies ist etwas, das ich in bash schreiben und dann in Python kopieren wollte, um Skriptsprachen zu lernen. Wenn ich Kopfschmerzen kriege, wenn ich es in bash schreibe, dann muss ich darüber nachdenken, Python vorauszublättern. – Heisenberg

+0

@Heisenberg Wenn Sie sich den Feed ansehen, werden Sie feststellen, dass er ein XML-Format verwendet: ''. Verkenne ich deine Frage falsch? Ich erwarte, dass Sie Ihr Ziel entweder mit einem Bash-Skript oder Python erreichen können. – user650881

+0

Security Weekly verwendet RSS v.2.0. Davor habe ich den Unterschied zwischen XML und RSS nicht ganz verstanden. – Heisenberg

Verwandte Themen