Hallo Leute,
ich habe hier ein kleines Script, dass (in diesem Fall) alle *.tif-Dateien in einem Verzeichnis durchgehend nummeriert umbenennt:
ls *.tif | sort | nl -w 4 -s ";" | sed "s/^\([^;]*\);\(.*\)$/mv \2 \1.tif /gi" | bash
Leider stattet es ein- und zweistellige Nummern nicht mit führenden Nullen aus, so dass ich immer per Hand:
for i in `ls [1-9].pbm`; do mv $i 00$i; done
for i in `ls [1-9][0-9].pbm`; do mv $i 0$i; done
hinterherschiebe. Kann jemand das in das Script einbauen?
Gruss,
DS
Führende Nullen im sed-Script
-
- Beiträge: 75
- Registriert: 26.05.2007 10:25:48
Re: Führende Nullen im sed-Script
Hallo whatsmyname2009,whatsmyname2009 hat geschrieben: ls *.tif | sort | nl -w 4 -s ";" | sed "s/^\([^;]*\);\(.*\)$/mv \2 \1.tif /gi" | bash
sorry, aber die Zeile sieht sehr umständlich aus.
Schreib doch mal genau wie die Dateinamen sind und wie sie hinterher aussehen sollen.
Ansonsten kann der befehl nl bereits führende nullen einfügen.
gruß heinz
Re: Führende Nullen im sed-Script
btw: Das " | bash" ist unnötig.
Hier eine Lösung in AWK:
Hier eine Lösung in AWK:
Code: Alles auswählen
#!/bin/awk -f
BEGIN {
while ("ls *.tif" | getline file) {
printf("cp \"%s\" \"%03d.tif\"\n", file, i++);
}
}
Use ed once in a while!
Re: Führende Nullen im sed-Script
Tuts nicht auch einfach sowas?
Code: Alles auswählen
x=1; for i in $(ls *.tif | sort); do mv $i $(printf %02u $x).tif; x=$((x+1)); done
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!
Macht ohne Haftung funktioniert nicht!
Re: Führende Nullen im sed-Script
sieht so aus.detix hat geschrieben:Tuts nicht auch einfach sowas?
Ich wollte es halt etwas komplizierter
Use ed once in a while!
Re: Führende Nullen im sed-Script
Hallo,
wie währe es damit?
gruß heinz
wie währe es damit?
Code: Alles auswählen
for d in `ls *.tif|nl -nrz|tr '\t' '_'`;do mv `echo $d|cut -f2- -d_` $d;done