Hallo Thomas, hallo Leute, Am Sonntag, 17. Oktober 2004 15:41 schrieb Thomas Bohnert:
ich hätte eine Frage zu GAWK:
Ich habe eine Datei mit folgendem Inhalt (in C++ mit printf generiert )
-- Zeilen Auszug -- 269.944015 0 0008.0 0006.9 64 20
Ich möchte den Durschnitt der dritten Spalte (Index beginnt mit 1) über alle Zeilen ausrechnen und lese daher mit $3 ein. Beim Einlesen wird jedoch nur der ganzzahlige Anteil der Zahl eingelesen. D.h. zum Beispiel bei der Zahl 269.944015 nur 269. Wenn ich mit GAWK und printf die Zahl ausgebe fällt mir auf, dass hier nicht wie gewohnt ein Punkt zur Trennung zwischen Vor- und Nachkommastellen verwendet wird sondern ein Komma.
Nun meine Frage: Wie kann ich mit GAWK Vor- und Nachkommastellen einlesen ohne das Datenformat der Datei zu ändern? (Wenn ich alles Punkte durch Kommas ersetze verhält sich GAWK wie erwartet)
gawk scheint die locale-Einstellungen auszuwerten. Schuss ins Blaue: LANG=C gawk .....
Alternativ: Gibt es in GAWK eine Möglichkeit, z.B. Suchen Ersetzen mit der ich sozusagen als Aufbereitung alle Punkte durch Kommas ersetze kann?
Bestimmt, aber da kann ich Dich nur auf die Doku verweisen. Das naheliegegende s/\./,/ habe ich bei einem kurzen Test nicht zum Laufen bekommen, ich bin bei awk aber auch Anfänger ;-) Gruß Christian Boltz -- Im Archiv dieser Liste findest Du so ziemlich jede Meinung zu reiserfs. Dort kannst Du dir eine aussuchen :) [Harald Huthmann in suse-linux]