Batchscript mit Terminal und mediainfo in eine Datei schreib

S

sectorchan

Aktives Mitglied
Thread Starter
Dabei seit
10.10.2013
Beiträge
505
Reaktionspunkte
19
Hiho,

ich möchte gerne meine Videosammlung "iTunes" Konform machen und möchte daher checken welchen Codec meine filme haben.

Mediainfo hat ja ein Kommandline tool und damit möchte ich ich folgendes bewerkstelligen.

Ich danachte mit ls -r rekursiv meine Ordner durchsuchen und dann mit der pipe an mediainfo übergeben, Im Anschluss mit grep "Format" | heat -1 sollte ich an das Video Format kommen.
dann wollte ich, das ich es später anschauen kann in eine Textdatei speichern mit ">>"

Meine Probleme sind, wie bekomme ich den Dateinamen von ls -R als variable? an mediainfo übergeben, dann am besten den Dateinamen in die selbst textdatei speichern und zum guten Schluss sollte das Format output neben dem Dateinahmen stehen damit die zuordnung passt.

Leider scheiters an den obigen problem. Gibt es vielleicht nicht auch was anderes einfacheres?
 
Ich danachte mit ls -r rekursiv meine Ordner durchsuchen und dann mit der pipe an mediainfo übergeben

find -exec sollte dein Problem lösen

zb find ~/Music -type f -name *.mp3 -o -name *.m4a -exec mediainfo {} \;

{} ist sozusagen der Platzhalter für den Dateinamen, abgeschlossen wird der Befehl mit \;
mit -o -name *.xxx kannst du noch weitere Dateiendungen hinzufügen, -type f bedeutet nur Dateien zu suchen, keine Verzeichnisse ... ist aber eigentlich überflüssig wenn du Dateiendungen angibst
 
Zuletzt bearbeitet:
also in eine variable kriegst du es so:
export VARIABLE=`ls -R`

allerdings gibt dir ls -R ja jede menge pfade und nicht nur datei namen…
 
Hiho,

der sollte schon in die Verzeichnisse dann noch reinschauen, darum dachte ich mir das mit ls -R

jetzt warscheinlich für einen Terminal fisierten eine easy Frage.

find /Volumes/Filme *.* -exec mediainfo {} \; >> ~/text.txt

sollte das ganze in die Textdatei ausleiten, geht das auch mit dem find?

(ich bin ned zuhause darum die Nachfrage anstatt gleich testen)
 
der sollte schon in die Verzeichnisse dann noch reinschauen, darum dachte ich mir das mit ls -R

-R für rekursiv ist prinzipiell richtig, allerdings bekommst du auch die Verzeichnisse als Ergebnisse angezeigt - und ein mediainfo auf ein Verzeichnis zu machen ist ja Unsinn

jetzt warscheinlich für einen Terminal fisierten eine easy Frage.
find /Volumes/Filme *.* -exec mediainfo {} \; >> ~/text.txt

Das funktioniert, allerdings müsste -name vor das *.* (wobei *.* bei find Unsinn ist, dann kannst es auch weglassen ... Sinn machen würde zB *.m4v) - und -type f angeben wenn du keinen weiteren Namensfilter hast um wie gesagt nur Dateien und keine Verzeichnisse zu finden

Außerdem wird es durch dein Pipe nach head und grep noch ein wenig komplizierter - das sollte aber funktionieren:

find /Volumes/Filme -type f -exec sh -c 'mediainfo {} | grep Format | head -1 >> ~/text.txt' \;
 
Zuletzt bearbeitet:
Hi Roedert,

DAnke für deine Hilfe, leider bleibt der Output leer.
Ich glaube ich importier alles per hand in itunes uns schaue was nicht importiert wird. So muss es dann eigentlich das Format sein was nicht passt. DAs Konvertier ich dann.
 
komisch .... bei mir funktioniert es und liefert:

Format : MPEG-4
Format : MPEG-4
Format : MPEG-4
Format : MPEG-PS
Format : MPEG-4
Format : MPEG-4
Format : MPEG-4
Format : MPEG-4
Format : MPEG-4
Format : MPEG-4
 
Zurück
Oben Unten