Am Mittwoch 01 Juli 2009 18:53:49 schrieb Christian Brabandt:
EYED3TRACK=`eyeD3 "$INP" | tr '\t' ' ' | tr -d '[\000-\037]' | sed -e 's/1mtitle0m:/\ntitle:/g' -e 's/1martist0m:/\nartist:/g' -e 's/1myear0m:/\nyear:/g' -e 's/1mgenre0m:/\ngenre:/g' -e 's/1mtrack0m:/\ntrack:/g' -e 's/1malbum0m:/\nalbum:/g' -e 's/1mUnique File ID:0m /\nUnique File ID:/g' | grep "track:" | sed -e 's/track: //' -e 's/^ *//g' -e 's/ *$//g'`
Mir ist immer noch nicht klar, was Du eigentlich erreichen willst. Erklär doch mal bitte, was das alles soll. Was ist denn eyeD3 und was willst Du hinterher erreichen?
http://linux.die.net/man/1/eyed3 (Python-Paket ist im Standard-Repo) Ich will einfach nur die Tags von mp3's richtig auslesen und dann per Skript weiterverarbeiten und das ist ziemlich komplex, da dies abhängig von der ID3- Version ist, sowie die Länge eine Rolle spielt und an welcher Stelle es geschrieben wurde. Vgl. http://www.id3.org/iTunes So richtig kompliziert wird es, bei den vielen Möglichkeiten von id3v2.4 Ich hatte bisher u.a. mit cut die eyeD3-Ausgabe auseinander geglaubt. Das macht aber Probleme, da der : nicht zwingend eindeutig ist, ein grep nach track auch nicht eindeutig ist und bei "track:" vor dem : noch ein Steuerzeichen ist. Manche musicbrainz-Synchronisierungen können es noch komplizierter machen, da dann eventuell eyeD3 nicht mehr damit klarkommt, etc. Bei der Beschränkung auf 1 Genre, bin ich bei folgender Fehlermeldung hängengeblieben: 'ascii' codec can't decode byte 0xc3 in position 14: ordinal not in range(128) Das ignoriere ich erst mal. Wenn du etwas außer exiftool kennst, mit dem man ID3-Felder gezielt _und_ problemlos auslesen kann, lass es mich wissen. Exiftool wird erst demnächst ein paar Probleme beheben, nachdem ich den Autor kontaktiert habe. Al -- 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