Am 12.12.2010 16:10, schrieb Fabian Ohde:
Am 12.12.2010 13:18, schrieb Martin Blank:
Am 11.12.2010 20:47, schrieb Fabian Ohde:
grep Location Deine-iTunes-Liste | sed -e 's/.*file: *\/\/\(.*\)<\/.*/cp -r "\1" DESTIN\//g' > temp.sh
schiebt für jeden gefundenen Eintrag eine Zeile in die Datei temp.sh. Falls die Verzeichnistruktur nicht übernommen werden soll, die Option "-r" weglassen.
Ein
sh temp.sh
führt die so erzeugt Datei und damit die einzelnen Kopier-Aktionen aus.
Wenn ich das so verwende, filtert er mir alle Links raus aber er behält das <key>Location</key><string> am Anfang und das </string> am Ende. Kann man das mit Exclude oder so gleich mit rausfiltern? Und wie verhält sich das mit Sonderzeichen (zb. ä ... steht in der Liste so drin: %C3%A4, ö = %C3%B6 usw)?
Ich habe Dein Beispiel (Deine Mail von 07.12.2010 18:26) in eine Datei kopiert, dort die Zeilenumbrüche in dem Titeltext - und nur hier! - durch Leerzeichen ersetzt und den obigen Befehl darauf ausgeführt. Ergebnis:
cp -r "/home/fabian/Music/CD IMAGE/The Postal Service - Give Up/The Postal Service - Give Up CD1/02 the postal service - such great heights.mp3" DESTIN/
Es werden keine (!) html-Fragmente durchgelassen. Es ist nicht nachvollziehbar, warum das bei dir anders ist.
Die Sonderzeichen kann ein Editor via search&replace umwandeln. Alternativ kann der sed-Befehl durch zusätzliche Scripte ergänzt werden, z.B.:
-e 's/%C3%A4/ö/g'
Dabei ist in beiden Fällen i.a.R. voraussetzung, dass "%C3%A4" ein String (= Text, Zeichenfolge) ist und nicht nur die Darstellung einen einzelnen Zeichens.
Ich hab hier mal einen Ausschnitt aus der xml datei hochgeladen (http://pastebin.com/yQA7fxhG). Ich sitz jetzt schon den ganzen Nachmittag dran aber ich komm nicht drauf warum das bei mir so funktioniert.
Das Beispiel in in der o.g. Mail von Dir war: <key>Location</key><string>file:///home/fabian/Music/CD IMAGE/The... Eine Location-Zeile in der von Dir hochgeladenen Datei sieht so aus: <key>Location</key><string>/home/fabian/Music/CD IMAGE/Daft Punk - Der offensichtliche Unterschied: "file://'!!!! DAS ist das Such-Muster in dem sed-Script! Wenn du das durch <string> ersetzt, sollte es funktionieren. Hier wird dann jedenfalls suaber gefiltert! Also: grep Location Deine-iTunes-Liste | sed -e 's/.*<string>\(.*\)<\/.*/cp -r "\1" DESTIN\//g' > temp.sh -- Mit freundlichen Grüßen Martin Blank -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org