• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

csh - Progrmierung

vino

Newbie
Liebe LinuxlerInnen,

versuche mit einen CSH-Script eine einfache Lösung die Umbenennung von Massen-Files durchzuführen.
Ich mache das meist mir foreach. Hier nun mein script
Code:
#!/bin/csh
@ j = 0001
@ l = 2
foreach i ( `ls -1 Dia*` )
mv $i Dia-$j.jpg
@ j = $j + $l
end

Bei dem o.g. Programm werden mir die NULLEN der Variablen j unterschlagen. Das Ergebnis ist
Dia001.jpg --> Dia-1.jpg
Dia002.jpg --> Dia-3.jpg
.
.Dia010.jpg --> Dia-19.jpg
...
Es sollte aber so aussehen:
Dia001.jpg --> Dia-0001.jpg
Dia002.jpg --> Dia-0003.jpg
.
.Dia010.jpg --> Dia-0019.jpg
...
Was mache ich falsch? :???: Danke für jeden Tipp :D

VG
Vino
 

abgdf

Guru
j ist eine Zahl. Du brauchst einen String.
So geht es:
Code:
#!/bin/csh
@ j = 0001
@ l = 2
foreach i ( `ls -1 Dia*` )
set j2 = `printf "%.4d" $j`
mv $i Dia-$j2.jpg
@ j = $j + $l
end
Aber warum csh? Wesentlich gebräuchlicher wären wohl bash und Perl. Wenn es geht, würde ich empfehlen, darauf umzusteigen.
 
OP
V

vino

Newbie
abgdf schrieb:
j ist eine Zahl. Du brauchst einen String.
So geht es:
Code:
#!/bin/csh
@ j = 0001
@ l = 2
foreach i ( `ls -1 Dia*` )
set j2 = `printf "%.4d" $j`
mv $i Dia-$j2.jpg
@ j = $j + $l
end
Aber warum csh? Wesentlich gebräuchlicher wären wohl bash und Perl. Wenn es geht, würde ich empfehlen, darauf umzusteigen.


Danke das war's. Ich war schon knapp dran. Aber leider immer noch nicht dicht genug. :D Ich bin eigentlich nicht der große Programmierer und meine letzten Prog.-Künste sind sehr lange zurück.

Also danke nochmal.

Gruß
Vino
 
Oben