PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Leerstellen mit 0 vor einer Zahl füllen. (BASH-SCRIPT)



tibrandt
18-08-2008, 12:45
Hallo,

ich habe eine Frage an Euch:

Ich habe eine Zahl (Währungsbetrag) z.B 35.

Diese möchte ich in ein Textfile schreiben. Es sollen aber 5 Positionen geschrieben werden, alle Leerstellen vor der Zahl sollen mit Null aufgefüllt werden.

-> 00035

Mit "sed" kann man glaube ich nicht arbeiten, weil der Rest der Information als feste Satzlänge steht und Leerstellen enthält, die nicht verändert werden dürfen.

Die Zahl kann auch Einstellig sein z.B. 6 oder so
-> 00006

Oder bei Zahl = 0

-> 00000

Es gibt glaube ich die Möglichkeit mit echo $() usw. eine Datenausgabe zu manipulieren.
Oder das ganze mit Perl (perl -n -e 'print pack(A10, $_)') innerhalb des Bash-Scriptes verarbeiten, wie füllt man mit 0 auf?

Vielleicht kann mir jemand helfen, ich komme nicht weiter.

Danke!

Gruß
Tino Brandt

ContainerDriver
18-08-2008, 12:50
Hallo,

dafür kann man printf verwenden, z.B.


[florian@leuchtturm1 ~]$ printf "%05d\n" 3
00003
. Wegen den Formatierungsoptionen: printf verhält sich wie printf() aus C.

Gruß, Florian

tibrandt
18-08-2008, 14:08
Hallo,

super, genau das ist die Lösung.

Gruß
Tino Brandt