2012-04-08 4 views
-1

Ich brauche Hilfe, ich mache zwei Dinge.Unix Shell Script zum Durchsuchen des Verzeichnisses für alle Mediendateien (Audio und Video)

a) Durchsuchen Sie das aktuelle Verzeichnis nach allen Mediendateien (z. B. Musiktitel und Videos) und erstellen Sie eine Liste der verfügbaren Dateien, die wiedergegeben werden sollen. b) Zeigen Sie eine entsprechende Meldung an, wenn keine Mediendateien gefunden wurden, und geben Sie dem Benutzer die Option , um das Programm zu schließen.

Vielen Dank

+0

Verwenden Sie den Befehl 'file' in Zeile 13. –

Antwort

1

Python wird den Job perfekt und einfach erledigen. Es ist eine sehr gute Skriptsprache, und einfach zu legern, können Sie versuchen, es zu verwenden. Zum Beispiel:

#!/usr/bin/env python 
import os 
files = os.listdir('.') 
available_files = [] 
for f in files: 
    if f.endswith('.mp3') or f.endswith('.mkv'): 
     available_files.append(f) 
if not available_files: 
    print 'there is no media file in current dir' 
+0

@RoundRobin Ich habe dies aktualisiert, obwohl es kein Shell-Skript ist, weil Shell-Skripte, die Listen von Dateinamen manipulieren * * schwer ist und für wirklich hässlichen Code sorgt . z.B. Linux-Dateinamen können neue Zeilen enthalten, und solche Dateinamen werden die Antwort von Dgarant zerstören. – je4d

0

Angenommen, Ihre Dateien haben Erweiterungen:

file_pattern="*.mp3|*.mp4|*.flv" 
file_count=`ls 2>/dev/null | egrep $file_pattern | wc -l` 
if [ $file_count -eq 0 ]; then 
    echo "No files found" 
else 
    echo `ls | egrep $file_pattern` 
fi 

Sie file_pattern ändern können, alle anderen Dateierweiterungen nach dem Sie suchen möchten aufzunehmen.