erik72
Goto Top

Führende Nullen hinzufügen

Hallo ihr Lieben,
ich habe folgendes Script und wünsche führende Nullen bei der Ausgabe.
Kann mir bitte jemand helfen?

#!/bin/sh
#
  1. Zaehlen von 1 bis 15
counter=1
while [ $counter -le 15 ]
do
echo $counter
counter=`expr $counter + 1`
done


Die Ausgabe soll sein:

0001
0002
..
..
0015

Vielen Dank!

Content-ID: 332733

Url: https://administrator.de/contentid/332733

Ausgedruckt am: 25.11.2024 um 06:11 Uhr

132692
132692 21.03.2017 aktualisiert um 08:50:53 Uhr
Goto Top
Das Padding (auffüllen mit Nullen) machst du ganz einfach so
printf %04d $counter
Gruß p.

p.s. Das gehört in die Kategorie Bash nicht Batch.
MrCount
Lösung MrCount 21.03.2017 um 08:48:00 Uhr
Goto Top
Servus,

da kannst du doch einfach die aktuelle Zahl abfragen und entsprechend Nullen setzen...

z.B.
counter=1
while [ $counter -le 15 ]
do
if [$counter -le 9]
then echo 000$counter
else echo 00$counter
fi
counter=`expr $counter + 1`
done


Ob es syntaktisch korrekt ist kann ich nicht prüfen, aber vom Prinzip her sollte es so gehen...
Erik72
Erik72 21.03.2017 um 09:11:18 Uhr
Goto Top
Hi pattern,
danke, ich suche aber nicht nach einer Lösung für die bash, sondern für die sh.
Hab die Kategorie hier leider nicht gefunden.
Gruß Erik
132692
132692 21.03.2017 aktualisiert um 09:17:21 Uhr
Goto Top
Uups die Kategorie ist tatsächlich weg, vor ein paar Tagen gabs die hier noch face-confused, sorry.
Lochkartenstanzer
Lochkartenstanzer 21.03.2017 aktualisiert um 09:32:56 Uhr
Goto Top
Zitat von @132692:

Uups die Kategorie ist tatsächlich weg, vor ein paar Tagen gabs die hier noch face-confused, sorry.

Nope.

Solange ich dabei bin, habe ich noch nie eine Kategorie bash gesehen. batch & shell ist schon richtig. weil sh und bash shells sind und man damit bathchprogramme/-skripten schreibt.

lks
132692
132692 21.03.2017 aktualisiert um 09:45:15 Uhr
Goto Top
Gut dann täuscht mich da vielleicht mein Gedächtnis ... funktionierende Lösungen hat er ja oben bereits die auch in einer posix sh funktionieren.
juhu01
juhu01 10.09.2018 um 09:20:42 Uhr
Goto Top
counter=1
while [ $counter -le 15 ]
do
printf '%07d\n' "$counter"
counter=`expr $counter + 1`
done

ich würde es so machen, dann funkt es bis in den Millionenbereich face-wink