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

Re: Der ls-Befehl und die verflixten Leerzeichen



Le jeudi 03 septembre 2015, 17:58:27 Joachim Hartmann a écrit :
> 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.


Hallo,

lass detox über deine Dateien laufen, dann hast du keine Leerzeichen 
mehr.

$ apt-cache show detox  
...
Description-en: utility to replace problematic characters in filenames
 detox is a utility designed to clean up filenames. It replaces difficult 
to work with characters, such as spaces, with standard equivalents. It 
will also clean up filenames with UTF-8 or Latin-1 (or CP-1252) 
characters in them.
 .
 Features:
 .
  * Removal or replacement of upper ASCII Latin-1 (ISO 8859-1) 
characters;
  * Removal or replacement of UTF-8 encoded Unicode characters;
  * Removal or replacement of spaces and other potentially tricky 
characters;
  * Trimming of excessive "_" and "-"s;
  * Directory recursion, dry runs, verbose listings.
 .
 It is designed with safety in mind. It won't overwrite a file that 
already exists, and it doesn't touch special files if not requested.
 .
 detox is useful to mass rename files automatically. As just one 
example, you can use detox to easily standardize lots of files, as MP3 
or movies, downloaded or stored inside a directory.

Gruss

Klaus


Reply to: