PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rechnen mit awk



gooze
16-04-2008, 10:18
Hallo,

ich habe da ein Verständnisproblem mit awk. Und zwar möchte ich aus einer Datei -daten- im Format:

[...]
c: 2.397873 m: 2.397765 diff: 0.000107
c: 3.549094 m: 2.397765 diff: 5.131856
[...]

die Differenzen der Felder $2 und $4 bilden, bekomme als Ergebnis aber nur die ganzzahligen Werte des Ergebnisses.
Das genutzte Kommando lautet: awk '{print $2-$4}' daten

Ein paar Spielereien mit CONVFMT oder OFMT brachten mich auch nicht weiter. Ich suchte schon in allen möglichen Manuals, Beschreibungen, aber dort gibt es immer nur Beispiele mit Ganzzahlen.

Was mache ich falsch?

Axel

ContainerDriver
16-04-2008, 21:55
Hallo.

Hmm, hilft dir wahrscheinlich auch nicht viel, dass ich sagen kann, dass es bei mir funktioniert:


florian@leuchtturm0:~/tmp$ echo "c: 3.549094 m: 2.397765 diff: 5.131856"| awk '{print $2-$4}'
1.15133
(GNU Awk 3.1.6).

Geht es vielleicht mit printf, also


awk '{printf("%f\n",$2-$4);}'
?

Gruß, Florian

gooze
16-04-2008, 22:47
Ist ganz einfach. Er hat den Punkt nicht als Komma angesehen.

Naja manchmal ist es einfacher als man denkt.

Axel

jan61
17-04-2008, 18:34
Moin,


Ist ganz einfach. Er hat den Punkt nicht als Komma angesehen.

jetzt wandelst Du aber hoffentlich nicht alle Punkte in Kommas um sondern setzt Dir zur Programmausführung die passende Sprache, oder?

Jan