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
>>>>>>>>>> Viele Grüße
Steffen -- Wenn einer von zwei Männern in einer Wirtschaft zwei Maß Bier trinkt und der andere zwei Schweinehaxen ißt, dann haben statistisch beide eine Maß Bier getrunken und eine Schweinehaxe gegessen. In Wirklichkeit hat sich der eine überfressen und der andere ist besoffen. -- Vieles kann der Mensch entbehren, nur den Menschen nicht. -- Ludwig Böme -- 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
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 find $d -type f | \ while read f do mv "$f" $tmp done find $tmp -type f | sort -n \ while read f do mv "$f" $d done done (ungetestet :-) Bye Jürgemn -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.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 -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2 Juergen.Vollmer@informatik-vollmer.de www.informatik-vollmer.de Internet-Telefonie: www.skype.com Benutzer: juergen.vollmer
participants (2)
-
Dr. Jürgen Vollmer
-
Steffen Hanne