• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Foreach im Terminal

nightmarevs

Alkmene
Registriert
09.07.09
Beiträge
33
Abend, da ich momentan meine ganze Audiobibliothek auf den Mac umstelle bin ich an das Problem gekommen das ich einen Ordner mit Hörspielen habe. In diesem Ordner sind c.a. 200 Unterordner und in jedem dieser Unterordner sind einzelne Kapitel als mp3 Dateien. Ich will jetzt im ersten Schritt statt den vielen einzelnen Dateien pro Ordner nur noch eine Datei.
Im Terminal habe ich es mit
Code:
for i in *; do cat $i/*.mp3 > $i.mp3; done
versucht, unter Linux haben solche foreach Schleifen immer super geklappt, wo liegt jetzt der Fehler?
 

das_micha

Leipziger Reinette
Registriert
11.03.07
Beiträge
1.795
Moin, zu deiner Frage hab ich leider keine Antwort, aber hatte vor wenigen Wochen das gleiche Vorhaben. Mp3 sind bei hörbüchern nur ausgeschieden da ich es nervig fand nur eine ewig Länge Datei zu haben. Habe mir mit dem audiobook builder audiobooks gemacht und habe so noch sprungmarken drin was ich als sehr komfortabel empfinde. Bei sehr langen Büchern wie Harry Potter mit glaub knapp 25std für mich eine Funktion auf die ich nicht verzichten möchte.
 

Irgendein Held

Oberösterreichischer Brünerling
Registriert
17.06.07
Beiträge
714
[...]
Code:
for i in *; do cat $i/*.mp3 > $i.mp3; done
versucht, unter Linux haben solche foreach Schleifen immer super geklappt, wo liegt jetzt der Fehler?
Die Schleifen funktionieren unter dem Mac OS X genauso.

Code:
for i in *; do cat $i/*.mp3 >> compilation.mp3; done

Merkste selbst, ne? ;)
 

nightmarevs

Alkmene
Registriert
09.07.09
Beiträge
33
Leider funktioniert es so eben nicht. Ich bekomme die Ausgabe
Code:
cat 001: no such file or directory
Das heist wohl das er seltsamerweise den Ordnernnamen nur bis zum ersten Leerzeichen verwendet. Wenn ich in der Schleife mit echo die Variable i ausgebe stimmt der Name aber. Momentan wird also nur eine 0 Byte große mp3 angelegt, mein eigentliches Ziel war aber für jeden Ordner eine mp3 anzulegen die ich dann später mit Audiobook Builder o.ä. zu einem Hörbuch mit Kapiteln machen kann.
Edit: Hat sich erledigt. Es hat wohl beim letzten Versuch nicht funktioniert IFS auf Leerzeichen zu setzen. Jetzt hat es mit der selben Befehlsabfolge geklappt, trotzdem danke für die Hilfe
 
Zuletzt bearbeitet: