Am Sonntag 27 September 2009 19:05:27 schrieb David Haller: Hallo David,
for INP in `find /bak/ -type f | sort`; do
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ GAANZ BÖSE!
Uiih, jetzt kriege ich Internetverbot ab 1. Hoffentlich nicht zu lange ;-) Im Ernst, ich habe ab 1.10., wie per PM schon angekündigt, vorübergehend nur Internet über UMTS für die allerwichtigsten Dinge.
Ok, in deinem Sonderfall mögen es nur Dateien ohne Zeichen aus IFS sein...
Wenn ich per Skript Dateien erzeuge, dann haben die grundsätzlich kein Leerzeichen.
Da bei dir sicher eh find + md5sum die Laufzeit bestimmen, und du auch sonst nicht an externen Prozessen in der Schleife sparst ...
MD5=`md5sum "$INP" | cut -f 1 -d" "` NEWFILE=`echo "$INP" | sed -n "s/\.\([^.]+\)\$/_${MD5}.\1/p"`
s.o.
mv "$INP" "$NEWFILE" done
Besser also, und ich denke nicht, daß es auf die Sortierung ankommt:
Die Sortierung wär schon ganz nett, falls das Skript wo hängenbleibt, muss aber nicht unbedingt sein.
find /bak/ -type f -exec bash -c ' MD5="$(md5sum "$1")" NEWFILE="$(echo "$1" | sed -n "s/\.\([^.]\+\)\$/@${MD5%% *}.\1/p")" mv -v -i "$1" "$NEWFILE" ' find-bash '{}' \;
Aber das schlägt auch öfter fehl, laß das z.B. mal auf folgende Dateinamen los ... ;)
Ja, aber siehe oben, ich muss es mir ja nicht schwer machen und Dateinamen verwenden, die problematisch sind.
$ ls -A . f o o f o o . b a r f o o . t g z foo.bar.baz .foo f o o . b a r . b a z foo foo.bar.baz. f o o f o o . b a r . b a z . foo. foo.bar.tar.gz f o o . f o o . b a r . t a r . g z foo.bar foo.tgz
Robust kannst du das in Perl machen.
Ich will am VPS möglichst ohne Perl auskommen. BTW ich bin mit ramhost.us sehr zufrieden. Extrem guter Support! Viel musste ich nicht fragen, aber das, was ich fragte, war für mich die Stecknadel im Heuhaufen und die richtige Antwort kam in ein paar Stunden. Hoffentlich bleibt die Qualität so. Wo unterscheidet sich deine Variante zu der von Jan? NEWFILE="${INP%.*}${MD5}.${INP##*.}" Kannst du die erklären bzw. einen Link zum Lesen empfehlen? Für mich ist das ziemlich kryptisch. Al -- 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