Ich versuche, flac-Dateien, die in einen Ordner verschoben wurden, automatisch in mp3 in einem anderen Ordner zu konvertieren.
Meine aktuelle Codezeile lautet:
inotifywait -m -r -q -e moved_to --format "'%w%f'" ~/test | xargs -I x flac -cd x - | lame -b 320 - /media/1tb/x.mp3
Um zu erklären, wie dies bisher funktioniert, überwacht inotifywait ~ / test rekursiv auf dort verschobene Dateien und gibt den Pfad und den Dateinamen in einer Pipe aus. xargs übernimmt diesen Namen und erstellt den richtigen flac-Befehl, wobei x durch den Dateinamen ersetzt und die Datei in eine andere Pipe dekodiert wird. In der neuen Pipe verarbeitet lame die Ausgabe von flac in mp3 unter / media. Ich möchte, dass xargs entweder auf irgendeine Weise über die Pipe greifen, das x im lame-Befehl ersetzen oder es auf irgendeine Weise an eine Variable senden, auf die beide Befehle zugreifen können, oder so. Ich habe versucht, mit Named Pipes und dem Jazz herumzuspielen, aber die Tatsache, dass tatsächlich Daten zwischen den beiden Befehlen übertragen werden, hat mich in die Irre geführt.
while read …
ist eine Lösung, aber dann fallenxargs
. Was Sie geschrieben haben, ergibt einfach keinen Sinn: Woher kommt Ihrer Meinungxargs
nach der Input? Und Sie sollten die Dinge richtig zitieren, es ist üblich, dass Musikdateinamen Leerzeichen enthalten.