[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Der ls-Befehl und die verflixten Leerzeichen



Hallo,
ich betreibe miniDNLA auf meinem Server. Mein Testverzeichnis enthält folgende Dateien:

======================================================================================================================================================
-rw-r--r-- 1 root root 2015-08-30 23:20 20150212-090500_Birge Schade bei _Volle Kanne_-(Herzkino).jpg -rwxr-xrwx 1 root root 2015-06-27 00:34 20150212-090500_Birge Schade bei _Volle Kanne_-(Herzkino).mp4 -rw-r--r-- 1 root root 2015-08-30 23:20 20150605-201500_Mildred Scheel - HD - Die First Lady und der Kampf gegen den Krebs-(Doku am Freitag).jpg -rwxr--r-- 1 root root 2015-08-28 09:38 20150605-201500_Mildred Scheel - HD - Die First Lady und der Kampf gegen den Krebs-(Doku am Freitag).mp4 -rw-r--r-- 1 root root 2015-08-30 23:20 20150619-180500_Erbschuld-(SOKO Wien).jpg -rwxr-xrwx 1 root root 2015-06-27 00:39 20150619-180500_Erbschuld-(SOKO Wien).mp4 -rw-r--r-- 1 root root 2015-08-30 23:20 20150626-201500_Verloren in Afrika-(SOKO Leipzig).jpg -rwxr-xrwx 1 root root 2015-06-27 00:40 20150626-201500_Verloren in Afrika-(SOKO Leipzig).mp4 -rw-r--r-- 1 root root 2015-08-30 23:20 20150626-221500_Raubvoegel (Video tgl. ab 20 Uhr)-(Polizeiruf 110).jpg -rwxr-xrwx 1 root root 2015-06-27 00:40 20150626-221500_Raubvoegel (Video tgl. ab 20 Uhr)-(Polizeiruf 110).mp4 -rw-r--r-- 1 root root 2015-08-30 23:20 20150823-103000_tagesschau, 10_30 Uhr-(Tagesschau).jpg -rwxr--r-- 1 root root 2015-08-28 13:37 20150823-103000_tagesschau, 10_30 Uhr-(Tagesschau).mp4
-rwxr-xr-x 1 root     root 2015-08-30 23:18 generateThumbs.sh
-rwxr-xr-x 1 root     root 2015-09-03 09:13 removeThumbs.sh
======================================================================================================================================================

Mit dem Script generateThumbs.sh (www.Obihoernchen.net) werden Bilddateien erstellt. Mit dem Script removeThumbs.sh möchte ich die Bilddateien löschen, zu denen es keine Videodatei mehr gibt.
Mein Ansatz dazu:
- Schleife über alle JPG-Dateien
- Je JPG-Datei die Anzahl der Dateien mit gleichem Namen - Dateiendung egal - ermitteln. - Ist die Anzahl 1, so exestiert nur die JPG-Datei. Diese wird dann gelöscht. Probleme bereiten mir die Leerzeichen im Dateinamen. Da $COUNT damit unbestimmt ist, ist die Variable mit 1 vorbesetzt.

======================================================================================================================================================
#!/bin/bash

DIR="/var/cache/minidlna/mediathekview/"

find "$DIR" -regex ".*\.jpg" -type f | while read -r FILEPATH

do
    printf "%s\n" "--- Start Thumbnailremovement for ---"
    printf "%s\n" "$FILEPATH"
    THUMBFILE="'${FILEPATH%.*}'.*" # remove video ext. and add .jpg
        COUNT=$(ls -l " $THUMBFILE "| wc -l)
        COUNT=1
     if [ $COUNT -eq 1 ]; then
printf "\e[1;33m%s\e[0m\n" "Video does not exists, removing thumbnail!"
               #rm $FILEPATH
        else
        printf "\e[1;33m%s\e[0m\n" "Video does exists, do nothing!"
    fi
     printf "%s\n" "--- End Thumbnailcreation ---"
done
exit 0
======================================================================================================================================================

Hier die Ausgabe des Scriptea
======================================================================================================================================================
09:18:27# ./removeThumbs.sh
.
.
.
--- Start Thumbnailremovement for ---
/var/cache/minidlna/mediathekview/20150823-103000_tagesschau, 10_30 Uhr-(Tagesschau).jpg ls: Zugriff auf '/var/cache/minidlna/mediathekview/20150823-103000_tagesschau, 10_30 Uhr-(Tagesschau)'.* nicht möglich: Datei oder Verzeichnis nicht gefunden
Video does not exists, removing thumbnail!
--- End Thumbnailcreation ---
======================================================================================================================================================

Starte ich die bemängelte Zeile auf der Commandline klappt das!

======================================================================================================================================================
09:18:08# ls -l '/var/cache/minidlna/mediathekview/20150823-103000_tagesschau, 10_30 Uhr-(Tagesschau)'.* -rw-r--r-- 1 root root 16349 Aug 30 23:20 /var/cache/minidlna/mediathekview/20150823-103000_tagesschau, 10_30 Uhr-(Tagesschau).jpg -rwxr--r-- 1 root root 109560036 Aug 28 13:37 /var/cache/minidlna/mediathekview/20150823-103000_tagesschau, 10_30 Uhr-(Tagesschau).mp4
======================================================================================================================================================

Alle von mir gefundenen Tipps zu ls und Leerzeichen haben nicht funktioniert.
Wer kann helfen, ggf auch mit einem alternatven Bash-Script.

--
Gruß aus der Stadt der CeBIT
Jochen


Reply to: