Linux-Shell-Skript: Counter mit fürhrenden Nullen erstellen.

  • Hallo Forum!


    Ich möchte ein Linux-Shell-Script schreiben, welches u.a. ein Zählvariable enthält. Diese soll aber mit führenden Nullen dargestellt werden: 001, 002, 003 etc.


    Da ich so etwas nicht hin bekommen habe, dachte ich mir "000" einfach vor die Zählvariable zu hängen und alles bis auf die letzten drei Zeichen abzuschneiden. Doch auch das habe ich nicht hin bekommen. Ich dachte an sed aber finde in der Doku keine Hinweise dieses Problem zu lösen.


    Hat jemand von Euch eine Idee?


    Danke und Gruss!

    _T_
    HO2
    IW0
    GE0

    HR4 (konvertierte 2019 nach 8 1/2 Jahren von Android zu iOS)  iPhone 12 Pro  Apple Watch Series 8 45mm GPS + LTE  MacBook Air M2 

  • printf ist dein Freund.

    Code
    i=1
    j=$(printf %03d $i)
    echo "$j"


    Kannst auch einfach da wo du derzeit die Variable ausgibst statt "echo" obiges printf verwenden (ohne die $()), die Ausgabe erfolgt auf stdout.


    Solltest du kein printf haben, kannst du selbiges auch mit perl nachstellen:

    Code
    perl -e 'printf "%03d", $ARGV[0]' <deinzaehler>
  • Zitat

    Original geschrieben von harlekyn
    printf %03d <deinzaehler>


    Erstmal Danke! Und während ich das ausprobiert habe, hast du schon wieder geändert. ;) Ich brauchte noch den Wert in einer Variablen, das ich dann so gelöst habe:

    Code
    #cnt ist der Zähler, mycnt der Zähler mit führenden Nullen.
    mycnt=`printf %03d $cnt`


    Aber jetzt hast Du das ja auch schon so ähnlich gelöst. Nochmals Danke! :top:



    EDIT: Originalbeitrag ins Zitat;)

    _T_
    HO2
    IW0
    GE0

    HR4 (konvertierte 2019 nach 8 1/2 Jahren von Android zu iOS)  iPhone 12 Pro  Apple Watch Series 8 45mm GPS + LTE  MacBook Air M2 

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!