Hallo,
ich möchte in einem Shell-Script eine Variable formatieren. Es sollen führende Nullen angefügt werden.
z.B.
$Variable hat den Wert 5 dann soll daraus 0005 werden.
$Variable hat den Wert 20 dann soll darus 0020 werden.
Wer hat eine Idee?
Danke Lutz
Variable formatieren
-
- Posts: 41
- Joined: 2002-11-30 12:05
Re: Variable formatieren
Führende Nullen kannst du nur an Strings anhängen.
Sollte dir vielleicht helfen.
$var wird automatisch nach String gecastet.
als function wäre vielleicht sowas zu gebrauchen.
oder
sollte auch gehen.
Hoffe dir geholfen zu haben :-)
Gruß,
Nils
Code: Select all
while (strlen($var) < 4)
$var = "0".$var;
$var wird automatisch nach String gecastet.
als function wäre vielleicht sowas zu gebrauchen.
Code: Select all
function null_maker ($var, $stellen) {
while (strlen($var) < $stellen)
$var = "0" . $var;
return $var;
}
Code: Select all
function null_maker ($var, $stellen) {
return str_repeat("0", $stellen - strlen($var)) . $var;
}
Hoffe dir geholfen zu haben :-)
Gruß,
Nils
Re: Variable formatieren
Oder noch einfacher:
Das füllt $string so mit führenden Nullen auf, dass ein vierstelliger String entsteht (z.B. 005 oder 0012 usw.)
Und mal wieder ein kleiner Hinweis auf php.net
http://www.php.net/manual/de/function.sprintf.php
--> Beispiel 5
PS: Ups... lesen sollte man können... PHP <> Shell... sorry ;)
Auf der Shell geht das mit:
Gleiches Ergebnis wie oben.
Code: Select all
$string = sprintf("%04s",$zahl)
Und mal wieder ein kleiner Hinweis auf php.net
http://www.php.net/manual/de/function.sprintf.php
--> Beispiel 5
PS: Ups... lesen sollte man können... PHP <> Shell... sorry ;)
Auf der Shell geht das mit:
Code: Select all
printf("%.4d",zahl);
-
- Posts: 41
- Joined: 2002-11-30 12:05
Re: Variable formatieren
Super :D
Aber (!!!) ich dachte er wollte seine Variablen formatieren und nicht formatiert ausgeben.
Rückgabewert schein also nicht der Formatierte String zu sein.
wird also wohl nicht funktionieren.
Wenn er sie nur formatiert ausgeben will, ist das wohl OK, wenn er aber die Formatierten weiter verarbeiten will, sollte er vielleicht doch meine Funktion nutzen :lol:.
Ist vielleicht auch einfacher zu handeln.
Gruß,
Nils
Aber (!!!) ich dachte er wollte seine Variablen formatieren und nicht formatiert ausgeben.
Code: Select all
int printf(string format [, mixed args...])
Code: Select all
$string = sprintf("%04s",$zahl)
Wenn er sie nur formatiert ausgeben will, ist das wohl OK, wenn er aber die Formatierten weiter verarbeiten will, sollte er vielleicht doch meine Funktion nutzen :lol:.
Ist vielleicht auch einfacher zu handeln.
Gruß,
Nils
Re: Variable formatieren
Ja sie soll weiter verarbeitet werden. Die Ausgabe wird in eine Datei gelenkt und als laufende Zahl für einen Dateinamen verwendet. Und nach Möglichkeit soll das Ganze in einem Shell-Script laufen also nicht Perl oder PHP.
Lutz
Lutz
Re: Variable formatieren
Du hast printf mit sprintf verwechselt.nils_eckert wrote:wird also wohl nicht funktionieren.Code: Select all
$string = sprintf("%04s",$zahl)
sprintf ist auf jeden Fall dafür gedacht, Strings zu formatieren.