Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[gelöst]"find" zur Automation von oggenc verwenden

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
ChewbaccaOnEarth
Newbie
Newbie
Beiträge: 3
Registriert: 14. Jan 2010, 22:18

[gelöst]"find" zur Automation von oggenc verwenden

Beitrag von ChewbaccaOnEarth »

Hallo!
Ich möchte oggenc automatisch über ein Verzeichnis samt Unterverzeichissen laufen lassen.
Dazu habe ich ein kurzes Script geschrieben in dem ich find verwenden möchte um Dateien zu finden die mit .waf enden aber als .ogg noch nicht vorhanden sind.

Code: Alles auswählen

find /home/rita/mp3/ -name "*.wav" ! -name "*.ogg" ! -empty -exec oggenc -q6 "{}" \; -exec rm "{}" \;
Das funktioniert leider nicht. ich vermute das in "name "*.waf"" bei einem Durchlauf nicht zwangsläufig dieselbe Datei behadelt wird wie in "! -name "*.ogg"".
Hat jemand eine bessere Idee??

Besten Dank im Vorraus
Matthias
Zuletzt geändert von ChewbaccaOnEarth am 17. Jan 2010, 01:43, insgesamt 1-mal geändert.
Benutzeravatar
HBtux
Member
Member
Beiträge: 203
Registriert: 18. Jul 2009, 22:52
Wohnort: $HOME

Re: "find" zur Automation von oggenc verwenden

Beitrag von HBtux »

Code: Alles auswählen

#!/bin/bash
# Suchpfad mit abschließendem "/" eintragen
SUCH_PFAD="/home/rita/mp3/"

find $SUCH_PFAD -name "*.wav" | while read TITEL_WAV; do
        TITEL=`basename $TITEL_WAV .wav`
        TITEL_OGG=${TITEL}.ogg

        test -f $SUCH_PFAD$TITEL_OGG
        if [ "$?" = "0" ]; then
                echo "Titel ${TITEL} gibt es bereits im WAV- und OGG-Format."
        else
                echo "Wandle ${TITEL_WAV} nach ${SUCH_PFAD}${TITEL_OGG} um."
                # hier Deine gewünschten Befehle eintragen
        fi
done
Viele Grüße
HBtux
ChewbaccaOnEarth
Newbie
Newbie
Beiträge: 3
Registriert: 14. Jan 2010, 22:18

Re: "find" zur Automation von oggenc verwenden

Beitrag von ChewbaccaOnEarth »

Hallo!!
*baffbin*
Danke schön!!!
*Tiefverneig*

Ich muß mich dringend eingehender damit befassen!!! :ops:
ChewbaccaOnEarth
Newbie
Newbie
Beiträge: 3
Registriert: 14. Jan 2010, 22:18

Re: "find" zur Automation von oggenc verwenden

Beitrag von ChewbaccaOnEarth »

Nachtrag:
Leider hat "basename" nicht nur die Dateiendung sondern auch den Pfad gelöscht, "find" arbeitet aber rekursiv.
Dies hat funktioniert:

Code: Alles auswählen

#!/bin/bash
# Suchpfad mit abschließendem "/" eintragen
SUCH_PFAD="/home/rita/mp3/"

cd $SUCH_PFAD
find $SUCH_PFAD -name "*.wav" | while read TITEL_WAV; do
        TITELPFAD=`dirname $TITEL_WAV`
        TITEL=`basename $TITEL_WAV .wav`
        TITEL_OGG=${TITELPFAD}/${TITEL}.ogg

        # test -f $SUCH_PFAD$TITEL_OGG
        test -e $TITEL_OGG
        if [ "$?" = "0" ]; then
                echo "Titel ${TITEL} gibt es bereits im WAV- und OGG-Format."
        else
                echo "Wandle ${TITEL_WAV} nach ${TITEL_OGG} um."
                # hier Deine gewünschten Befehle eintragen
        	cd $SUCH_PFAD
        	oggenc -q6 ${TITEL_WAV}
		rm ${TITEL_WAV}
	fi
Benutzeravatar
HBtux
Member
Member
Beiträge: 203
Registriert: 18. Jul 2009, 22:52
Wohnort: $HOME

Re: "find" zur Automation von oggenc verwenden

Beitrag von HBtux »

ChewbaccaOnEarth hat geschrieben: Leider hat "basename" nicht nur die Dateiendung sondern auch den Pfad gelöscht, "find" arbeitet aber rekursiv.
Der find such alles unterhalb von $SUCH_PFAD. - Also sollte kein Problem sein.

Um den Vollen Dateinamen inkl Pfad zu verwenden, kannst Du den Filename aus zwei Variablen zusammensetzen.

Code: Alles auswählen

$SUCH_PFAD$TITEL_OGG
$SUCH_PFAD$TITEL_WAV
$TITEL steht für den Titel des Musikstück ohne Dateiendung....
Viele Grüße
HBtux
Antworten