Page 1 of 1

ca 500 Dateien umbenennen ... programm/script gesucht

Posted: 16. Nov 2002 11:38
by eq
hi .. ich habe ein e Liste von Dateien, welche durchnummeriert sind, aber da zwischen fehlen einige nummern.
die endung soll auch geändert werden und die ganze datei soll 12-stellig sein:

also

bild1.pic
bild2.pic
bild5.pic
bild8.pic
bild9.pic
bild10.pic
bild11.pic


soll werden

000000000001.bmp
000000000002.bmp
000000000005.bmp
000000000008.bmp
000000000009.bmp
000000000010.bmp
000000000011.bmp

hat jemand ein kleines Script parat ?

ein C-source darf es auch sein

DANKE

Re: ca 500 Dateien umbenennen ... programm/script gesucht

Posted: 16. Nov 2002 12:11
by domseichter
Wenn Du KDE installiert hast, schau Dir mal KRename an:
http://krename.sf.net

Re: ca 500 Dateien umbenennen ... programm/script gesucht

Posted: 16. Nov 2002 12:43
by eq
sorry ... hab kein X-Win ... is ne HP_UX Machine
deswegen bräuchte ich für sowas ja ein kleines script

Re: ca 500 Dateien umbenennen ... programm/script gesucht

Posted: 16. Nov 2002 14:55
by Jochen
Nichts leichter als das:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">ls *.pic | awk '{
name = $0
gsub (/[<!--no-->^0-9<!--no-->]+/,"")
printf ("mv %s %012d.bmp\<!--no-->n",name,$0)
}' | sh
</font><hr></pre></blockquote><li>Alle Dateien mit Endung .pic in den awk schicken.
<li>Dort erst mal den Dateinamen merken
<li>Nur die Zahl aus dem Dateinamen übrig behalten.
<li>mv-Kommando aus dem Dateinamen und der auf 12 Stellen aufgefüllten Zahl + ".bmp" bauen.
<li>Diese Liste von mv-Kommandos in eine Shell zur Ausführung pipen.

Jochen

Re: ca 500 Dateien umbenennen ... programm/script gesucht

Posted: 16. Nov 2002 18:21
by Niko
Was macht gsub ? Habe keine man page dazu.
Bin auch in den RedHat Skripten mal darüber gestolpert.

Re: ca 500 Dateien umbenennen ... programm/script gesucht

Posted: 17. Nov 2002 20:48
by Jochen
gsub (global substitute) ist eine awk-Funktion. Wenn Du mit englischer Doku kein Problem hast, kannst Du mit "info gawk" eine sehr gute Einführung in den awk kriegen (das g vor awk steht für GNU awk). Das awk-Skript wird auf jede Zeile ausgeführt, d.h. für jeden Dateinamen einmal. Alle Folgen von Nicht-Ziffern ("/[<!--no-->^0-9<!--no-->]+/") werden durch eine leere Zeichenkette ersetzt, also alles bis auf die Zahlen im Dateinamen gelöscht.

Jochen