Shellskript soll Verzeichnisse rekursiv 'abarbeiten'

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Heather, 26.10.2006.

  1. #1 Heather, 26.10.2006
    Heather

    Heather Grünschnabel

    Dabei seit:
    13.06.2005
    Beiträge:
    2
    Zustimmungen:
    0
    Hallo,

    ich habe ein kleines Shellskript, mit dem ich aus wav-Dateien mp3-Dateien erstelle. Dazu kopiere ich es immer in das Verzeichnis mit den wav-Dateien und führe es dort aus. Wie bekomme ich es hin, dass es auch alle Unterverzeichnisse berücksichtigt und die dort abgelegten wav-Dateien ebenfalls umwandelt und die mp3-Dateien in das gleiche Verzeichnis packt, in dem die dazugehörigen wav-Dateien liegen?

    Hier ist das Skript:

    Code:
    #!/bin/bash
    for i in *.wav;
    do
      NAME_MP3=`basename "$i" wav`;
      lame -h -V 0 -S "$i" "$NAME_MP3"mp3 &
      while [ $((`ps -C lame | wc -l` - 1 )) -ge 2 ]; do sleep 1; done;
    done
    while [ $((`ps -C lame | wc -l` - 1 )) -ge 1 ]; do sleep 1; done;
    Dabei ist wichtig, dass das Skript auch mit Dateien und Verzeichnissen klar kommen soll, in denen Leerzeichen vorkommen.

    Wie mache ich das?

    Inzwischen habe ich dieses Skript, aber das versagt bei den Leerzeichen:

    Code:
    #!/bin/bash
    
    if [ "$#" -ne "1" ]
    then
      echo "Fehler: es muss ein Verzeichnis angegeben werden"
      exit 1
    fi
    
    
    for i in `find "$1" -name "*.wav"`;
    do
      DIRNAME=`dirname "$i"`
      NAME_MP3=`basename "$i" wav`;
      lame -h -V 0 -S "${i}" "${DIRNAME}/${NAME_MP3}mp3"
    done
    Danke und Gruß!
    Heather
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    find (für rekursives Verzeichnis-durchforsten) in Verbindung mit xargs oder read (für Leerzeichen) solltest Du Dir anschauen. In der Regel tut's ein

    Code:
    find [DIR] -type f | while read file; do blabla file; done
    
    Mehr dazu unter man find/xargs/read.

    Gruss, Xanti
     
Thema:

Shellskript soll Verzeichnisse rekursiv 'abarbeiten'

Die Seite wird geladen...

Shellskript soll Verzeichnisse rekursiv 'abarbeiten' - Ähnliche Themen

  1. Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln

    Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln: Ich muß häufiger in 2 bestimmte Verzeichnisse auf 3. oder 4. Ebene wechseln. Um nicht permanent cd /ordnerA/ordnerB/ordnerC... usw eingeben zu...
  2. Shellskript per PHP aufrufen funktioniert nicht

    Shellskript per PHP aufrufen funktioniert nicht: Hallo zusammen, ihr seid meine letze Hoffnung, seit heute morgen versuche ich ein shellskript zum laufen zu bekommen. Folgende...
  3. Problem bei Shellskript

    Problem bei Shellskript: Hey Leute, ich soll ein Shellskript schreiben welches einen Verzeichnis, welches ich als Paramter angebe, rekursiv nach der Textdatei mit den...
  4. Reengineering Shellskripte

    Reengineering Shellskripte: Hallo Community, ich habe ein Problem wo ich leider keine Lösung finde. Es gibt eine Liste von Shell-skripten die in unterschiedlichen...
  5. Servicemenu ruft Shellskript nicht auf

    Servicemenu ruft Shellskript nicht auf: Hallo zusammen, ich habe gerade ein Shellskript gebastelt das Bilder verkleinert und in einen neuen Ordner packt. Per Konsole funktioniert es...