Gute Erfahrungen im Umgang mit Sonderzeichen in Filenamen habe ich
gesammelt, indem zunächst Alles streng als Text behandelt wird:
Erklärung:
Besser als der ls-Befehl ist der find-Befehl mit sicheren Optionen.
Unterverzeichnisse werden dann mit durchsucht und es landen nur
Filenamen ( keine Dirs ) im Text - pro Zeile ein Filename.
Die scheinbar umständlich formulierte for-Schleife stellt sicher,
dass die Liste zeilenweise abgearbeitet wird: wichtig.
In der resultierenden 'Vliste' sind jetzt nur noch tatsächlich von hier
aus ansprechbare Dateinamen gelistet, sie wurden alle einzeln mittels
'test -e' verifiziert. Das verifizierte File kann hier auch oder nur
weiterverarbeitet werden, z.B. mit:
Unbearbeitbare Files, bzw. deren 'zu schräge Dateinamen', landen in der
'Fliste'. Wer hier einen Eintrag findet, veröffentlicht diesen bitte für
mich in diesem Foreneintag.
Ich habe diese Technik schon in diversen Mp3-Sammlungen, die wohl
den Overkill in Sachen 'schräge Dateinamen' darstellen, getestet.
Bitte nervt mich nicht mit anderen Schreibweisen ( geschw. Klammern u.s.w. ).
Ich bleibe bei dieser bewährten und für mich gut lesbaren Weise.
Ach ja, möchte jemand einen Skript ( 56 Zeilen ), der Gedanken lesen kann ?
gesammelt, indem zunächst Alles streng als Text behandelt wird:
Code:
#!/bin/bash
find ./ -name "*" -type f >Liste
echo -n "" >Vliste; echo -n "" >Fliste
a=$( cat Liste | wc -l )
for ((i=1; ${i}<=${a}; i++)) do
echo -en "\rVerifiziere Filename ${i} von ${a}... "
f="$( head -${i} Liste | tail -1 )"
if test -e "${f}"; then
echo "${f}" >>Vliste
# Hier ggf. weiterverarbeiten.
else
echo "${f}" >>Fliste
fi
done
echo "$( cat Fliste | wc -l ) unbearbeitbare Filenamen gefunden."
Erklärung:
Besser als der ls-Befehl ist der find-Befehl mit sicheren Optionen.
Unterverzeichnisse werden dann mit durchsucht und es landen nur
Filenamen ( keine Dirs ) im Text - pro Zeile ein Filename.
Die scheinbar umständlich formulierte for-Schleife stellt sicher,
dass die Liste zeilenweise abgearbeitet wird: wichtig.
In der resultierenden 'Vliste' sind jetzt nur noch tatsächlich von hier
aus ansprechbare Dateinamen gelistet, sie wurden alle einzeln mittels
'test -e' verifiziert. Das verifizierte File kann hier auch oder nur
weiterverarbeitet werden, z.B. mit:
Code:
if test "$( echo "${f}" | grep -iE "eric[^a-z]*clapton.*\.(mp3|wav)" )"; then
echo "${f}" >>EricClapton.pl
fi
Unbearbeitbare Files, bzw. deren 'zu schräge Dateinamen', landen in der
'Fliste'. Wer hier einen Eintrag findet, veröffentlicht diesen bitte für
mich in diesem Foreneintag.
Ich habe diese Technik schon in diversen Mp3-Sammlungen, die wohl
den Overkill in Sachen 'schräge Dateinamen' darstellen, getestet.
Bitte nervt mich nicht mit anderen Schreibweisen ( geschw. Klammern u.s.w. ).
Ich bleibe bei dieser bewährten und für mich gut lesbaren Weise.
Ach ja, möchte jemand einen Skript ( 56 Zeilen ), der Gedanken lesen kann ?