Am Freitag, 12. September 2008 14:37:49 schrieb Dr. Jürgen Vollmer:
Am Freitag, 12. September 2008 14:37:49 schrieb Dr. Jürgen Vollmer:
Am Freitag, 12. September 2008 14:15:19 schrieb Steffen Hanne:
Hallo liebe Scriptfreunde,
ich hatte ja geschrieben, dass das Script welches ich fand mein Problem mit der Sortierung von Daten löst. Allerdings funktioniert das Script nicht, wenn Leerzeichen im Dateinamen/Verzeichnisnamen enthalten sind. Vielleicht kann mir jemand helfen.
schnipp>>>>>>>
#! /bin/sh # Usage: # findalpha [-R]
# Reorder the directory entries according to alphanumerical order, so # find output is in order. Useful for preparing files for play on an # MP3 player that follows directory order. # If -R is given, do recursively.
# Thu Dec 27 02:47:00 EST 2007 v. 0.1 jh initial version
# TODO: # handle spaces in file/directory names # figure out why it works on IDE but not on USB, even if the FS is ext3
if [ "$1" = "-R" ] ; then dirs=`find . -type d` else dirs=. fi for dir in $dirs; do cd "$dir" tmp=`mktemp -d -p .` mv `find . -maxdepth 1 -mindepth 1 | grep -v $tmp` $tmp cd $tmp mv `find . -maxdepth 1 -mindepth 1 | sort -n` .. cd .. rmdir $tmp cd "$start" done
das kann nicht funktionieren, - dirs=`find . -type d` enthält eine Liste von Wörtern, wenn da in den Verzeichnisnamen Blanks enthalten sind, dann ist das in $dirs nicht mehr zu erkennen. - mv `find ....` auch find liefert eine Liste von Dateinamen, die blanks enthalten können. mv betrachtet dies dann als separate Dateien.....
besser:
tmp=`mktemp -d -p /tmp`
find . -type d | \ while read d do
das
find $d -type f | \
muss natürlich find "$d" -type f | \ heissen
while read f do mv "$f" $tmp done find $tmp -type f | sort -n \ while read f do
das
mv "$f" $d
muß natürlich mv "$f" "$d" heissen
done done (ungetestet :-)
(ausversehen zu schnell den Send-Knopf gedrückt :-)
Bye ürgen
Hallo Jürgen, nach deiner Anregung (danke dafür) sieht das Script jetzt so aus: #! /bin/sh # Usage: # findbeta # Reorder the directory entries according to alphanumerical order, so # find output is in order. Useful for preparing files for play on an # MP3 player that follows directory order. # Thu Dec 27 02:47:00 EST 2007 v. 0.1 jh initial version tmp=`mktemp -d -p /tmp` find . -type d | \ while read d do find "$d" -type f | \ while read f do mv "$f" $tmp done find $tmp -type f | sort -n \ while read f do <-hier ist der Fehler mv "$f" "$d" done done Allerdings bekomme ich einen Syntaxfehler (unexpected token) in Zeile 23. Kann jemand helfen? -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org