PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bash und printf-Ausgabe: dezimal - oktal



zst
06-09-2006, 22:23
Hallo allerseits,
leider kann ich printf in der bash nicht davon überzeugen, eine Zahl mit führenden Nullen NICHT in eine oktale Zahl umzurechnen.
Beispiel:
# printf "%09d\n" 1234 --> Ausgabe: 000001234
dagegen
# printf "%09d\n" 0022 --> Ausgabe: 000000018

Wie kann ich printf sagen, dass 22 nicht zu 18 wird ?

DANKE für Eure Hilfe !
Gruss zst

Romanday
06-09-2006, 23:42
Hallo allerseits,
leider kann ich printf in der bash nicht davon überzeugen, eine Zahl mit führenden Nullen NICHT in eine oktale Zahl umzurechnen.
Beispiel:
# printf "%09d\n" 1234 --> Ausgabe: 000001234
dagegen
# printf "%09d\n" 0022 --> Ausgabe: 000000018

Wie kann ich printf sagen, dass 22 nicht zu 18 wird ?

DANKE für Eure Hilfe !
Gruss zst

Schau dir mal hexdump an.

zst
07-09-2006, 00:15
@Romanday --> Vielen Dank !

... aber kennt niemand eine printf-Lösung ?
hexdump ... da lese ich oktal - hex ... ???
Gruss zst

Romanday
07-09-2006, 08:17
Wie kann ich printf sagen, dass 22 nicht zu 18 wird ?

DANKE für Eure Hilfe !
Gruss zst

printf "%09o\n" 0022

rais
07-09-2006, 13:42
Hallo allerseits,
leider kann ich printf in der bash nicht davon überzeugen, eine Zahl mit führenden Nullen NICHT in eine oktale Zahl umzurechnen.

Eine Zahl mit fuehrender Null wird nicht in eine oktale Zahl umgerechnet; Du gibst vielmehr durch die fuehrende Null an, dass die Zahl als oktaler Wert zu interpretieren ist.


Wie kann ich printf sagen, dass 22 nicht zu 18 wird ?

Die Frage muesste eigentlich lauten:''Wie kann ich printf sagen, dass 022 nicht zu 18 wird ?''
Unterdrueck doch die fuehrende(n) Null(en)
MfG,

peschmae
07-09-2006, 17:25
z.B. mit sowas kriegst du die nullen weg:
printf "%09d\n" $(expr 0022 + 0)

MfG Peschmä
P.S. grauenhaft, ich weiss ;) *ggg

zst
07-09-2006, 21:03
Hallo und VIELEN DANK an EUCH !!!

@Romanday: printf "%09o\n" funktioniert nur bei kleinen Zahlen korrekt.

@rais: Die Frage ... Du hast natürlich Recht! Dein Vorschlag bringt aber die Lösung.

@peschmae: Besonderen Dank an Dich !!! Das Beispiel mag "grauenhaft" sein, funktioniert aber in meinem Script tadellos. Und das Beste an einer Lösung ist für mich eine Lösung mit Beispiel ! DANKE !

Gruss zst

Romanday
10-09-2006, 18:13
Hallo und VIELEN DANK an EUCH !!!
Gruss zst

Shell und Zahlen -a -o Konvertierung, da hast Du immer Theater.
Es kann sein das dein Script an anderer Stelle hängt.

Die Shell wurde nicht zum rechnen geschaffen.

Besser ist so etwas mit awk, python, perl o. php zu lösen.

Du hast dort schon meist vorgefertigte Funktion für jede
Art von Konvertierung, und auch keinen Ärger mit eventuellen
Sonderzeichen.

Außerdem gibt es für python, perl o. php Zusatzmodule für große
Zahlen, wenn Du mal das Universum berechnen möchtest.