Führende Nullen im sed-Script

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
whatsmyname2009
Beiträge: 75
Registriert: 26.05.2007 10:25:48

Führende Nullen im sed-Script

Beitrag von whatsmyname2009 » 09.06.2008 14:14:59

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

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: Führende Nullen im sed-Script

Beitrag von heinz » 09.06.2008 15:18:25

whatsmyname2009 hat geschrieben: ls *.tif | sort | nl -w 4 -s ";" | sed "s/^\([^;]*\);\(.*\)$/mv \2 \1.tif /gi" | bash
Hallo whatsmyname2009,

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

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Führende Nullen im sed-Script

Beitrag von Meillo » 09.06.2008 16:49:43

btw: Das " | bash" ist unnötig.


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!

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Führende Nullen im sed-Script

Beitrag von detix » 09.06.2008 21:39:40

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!

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Führende Nullen im sed-Script

Beitrag von Meillo » 09.06.2008 22:05:12

detix hat geschrieben:Tuts nicht auch einfach sowas?
sieht so aus.
Ich wollte es halt etwas komplizierter ;-)
Use ed once in a while!

Benutzeravatar
heinz
Beiträge: 535
Registriert: 20.12.2007 01:43:49

Re: Führende Nullen im sed-Script

Beitrag von heinz » 10.06.2008 14:29:09

Hallo,

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
gruß heinz

Antworten