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: