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-Key: 332733

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

Ausgedruckt am: 28.03.2024 um 13:03 Uhr

Mitglied: 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.
Mitglied: 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...
Mitglied: 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
Mitglied: 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.
Mitglied: 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
Mitglied: 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.
Mitglied: 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