[Bash] for Schleife?

Dieses Thema im Forum "Linux & BSD" wurde erstellt von Heisenberg, 28. Januar 2012 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 28. Januar 2012
    Hey,

    ich will ein Paar Dateien von flac in wav konvertieren.

    Hab mir dazu folgenden Befehl zusammengebastelt, der aber leider nicht funktioniert:

    Code:
    for i in *.flac; do flac -d '$i'; done
    Ich glabu ich hab da was prinzipiell nicht verstanden. Wenn ich eintippe: "for i in *.flac; do echo '$i'; done", bekomme ich die Dateinamen, das ist so gewollt. Durch flac -d input.flac bekomme ich die .wav Datei der jeweiligen Datei. Warumm klappt meine Schleife so nicht?
    Es kommt nur immer wieder:
    Spoiler
    $i: ERROR initializing decoder
    init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE

    An error occurred opening the input file; it is likely that it does not exist
    or is not readable.
     
  2. 28. Januar 2012
    AW: [Bash] for Schleife?

    Code:
    for i in `ls|grep .flac`;do flac -d "$i";done
    etwas umständlicher bei der dateiauswahl, aber for hat sich schon an belangloseren sachen verschluckt.
    sind leerzeichen in den flac dateinamen? falls ja, versuch mal 2 oder 3 entsprechend umzubenennen und dann mit denen die for-schleife zu starten.
     
  3. 28. Januar 2012
    AW: [Bash] for Schleife?

    Muss es zwingend eine For-Schleife sein?
    Für dein Vorhaben bietet sich auf find an..
    Code:
    find . -name "*.flac" -exec flac -d "{}"\;
    Ungetestet..
    Das {} wird dann von find durch den jeweiligen Dateinamen ersetzt!

    MfG
     
  4. 29. Januar 2012
    AW: [Bash] for Schleife?

    Muss keine for-Schleife sein.
    Dein Befehl haut mir ein:

    Code:
    find: Fehlendes Argument für "-exec".
    raus.

    Edit:
    Ich hab das nun mit ein Paar Zwischenschritten raus.

    Code:
    # Ersetzt alle Leerzeichen im Dateinamen mit einem _
    for i in *flac; do mv "$i" "${i/ /_}"; done
    # Konvertiert die Flac Datei in .wav
    for i in `ls|grep .flac`;do flac -d "$i";done
    #konvertiert die .wav Datei in aac mit ca 220 KB/s
    for i in *.wav; do faac -q 256 "$i" -o "`basename "$i" .wav` .aac"; done;
    
    Kann man das irgendwie sauberer hinbekommen? Außerdem muss ich bei mehreren Leerzeichen im Dateinamen den ersten Befehl öfters ausführen.
     
  5. 29. Januar 2012
    AW: [Bash] for Schleife?

    das mit dem fehlenden argument für -exec hatte ich immer, wenn ich kein leerzeichen vor dem \; hatte, probier das ma...mfg coach
     
  6. 29. Januar 2012
    AW: [Bash] for Schleife?


    Code:
    mv -v "$1" `echo $1 | tr ' ' '_' `
    da einfach ne for schleife drumrum basteln ^^
     
  7. 9. Februar 2012
    AW: [Bash] for Schleife?

    Hat super geklappt, hab meine Musik jetzt in nem ordentlichen Format (das nicht so viel Platz einnimmmt und echt gute Qualität hat). Close
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.