Hallo zusammen, folgendes Skript funktioniert, ist aber langsam: COUNT=1 ls -1 | while read DATEI; do mv "$DATEI" $COUNT COUNT=$(echo $COUNT+1 | bc) done Mir kommt das unelegant vor, und langsam ist es auch. Wie geht es besser? Wie könnte ich führende Nullen einführen, also so, wie seq -w sie produziert? -- Andre Tann -- 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
Vielleicht kannst du das hier probieren ...
COUNT=1
for DATEI in `ls -1`; do
mv "$DATEI" $COUNT
COUNT=$((COUNT+1))
done
lucox
On Mon, Aug 11, 2008 at 8:12 AM, Andre Tann
Hallo zusammen,
folgendes Skript funktioniert, ist aber langsam:
COUNT=1 ls -1 | while read DATEI; do mv "$DATEI" $COUNT COUNT=$(echo $COUNT+1 | bc) done
Mir kommt das unelegant vor, und langsam ist es auch. Wie geht es besser?
Wie könnte ich führende Nullen einführen, also so, wie seq -w sie produziert?
-- Andre Tann
-- 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
-- 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
lucox, Montag, 11. August 2008 09:16:
COUNT=1 for DATEI in `ls -1`; do mv "$DATEI" $COUNT COUNT=$((COUNT+1)) done
Sieht schon viel besser aus, weil man nicht jedesmal bc starten muß. Danke. -- Andre Tann -- 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
Hallo, Am Mon, 11 Aug 2008, Andre Tann schrieb:
lucox, Montag, 11. August 2008 09:16:
COUNT=1 for DATEI in `ls -1`; do mv "$DATEI" $COUNT COUNT=$((COUNT+1)) done
Sieht schon viel besser aus, weil man nicht jedesmal bc starten muß. Danke.
$ ls a b c d e f g h i j k l m n o p q r s t u v w x y z $ ls | perl -e 'BEGIN{$i=0;}foreach(<ARGV>) { chomp; rename($_, $i++); }' $ ls 0 10 12 14 16 18 2 21 23 25 4 6 8 1 11 13 15 17 19 20 22 24 3 5 7 9 Hat den Vorteil, daß nur ein ls + perl gestartet werden müssen. Das ls ginge natürlich auch in perl. $ perl -e 'BEGIN{$i="a";}foreach(<*>) { rename($_, $i++); }' $ ls a b c d e f g h i j k l m n o p q r s t u v w x y z Zum rumprobieren bitte statt dem 'rename' folgendes verwenden: { printf "rename '%s' '%s'\n", $_, $i++; } HTH & have fun! -dnh -- Wait for the ricochet... -- Deep Purple, "Child in Time" -- 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
lists@dhaller.de, Montag, 11. August 2008 23:41:
$ ls a b c d e f g h i j k l m n o p q r s t u v w x y z $ ls | perl -e 'BEGIN{$i=0;}foreach(<ARGV>) { chomp; rename($_, $i++); }' $ ls 0 10 12 14 16 18 2 21 23 25 4 6 8 1 11 13 15 17 19 20 22 24 3 5 7 9 [...]
...daß Du es auch immer so kompliziert machen mußt. Bin schon froh, wenn ich die Bash im Griff hab. Und dann noch Perl! -- Andre Tann -- 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
Hallo,
Wie könnte ich führende Nullen einführen, also so, wie seq -w sie produziert?
zum bleistift für bilder (es sollte halt kein space in den dateinamen vorkommen und keine dateien mit dem zielnamen also nr.jpg): $ cat ~/bin/rename2.sh #!/bin/bash my_cnt=`ls *.jpg | wc | awk {'print $1'}` # anzahl dateien my_fn=(`ls`) # array filenames my_counter=0 for my_seq in `seq -w 1 $my_cnt`; do # generierte filename mv ${my_fn[$my_counter]} $my_seq.jpg my_counter=`expr $my_counter + 1` done $ for i in `seq 5 19`; do touch hansi$i.jpg; done $ ls hansi10.jpg hansi12.jpg hansi14.jpg hansi16.jpg hansi18.jpg hansi5.jpg hansi7.jpg hansi9.jpg hansi11.jpg hansi13.jpg hansi15.jpg hansi17.jpg hansi19.jpg hansi6.jpg hansi8.jpg $ sh rename2.sh $ ls 01.jpg 02.jpg 03.jpg 04.jpg 05.jpg 06.jpg 07.jpg 08.jpg 09.jpg 10.jpg 11.jpg 12.jpg 13.jpg 14.jpg 15.jpg lg Georg -- 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
participants (4)
-
Andre Tann
-
Georg
-
lists@dhaller.de
-
lucox