• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

awk

daniel.macbook

Uelzener Rambour
Registriert
09.01.07
Beiträge
369
Hi,

kennt sich vielleicht jemand mit awk aus? Ich will zwei Spalten aus einer gewissen Anzahl von Dateien auslesen und diese mulitpliziert ausgeben. Ich habe das Problem, dass in den Dateien die Zahlen mit einem Punkt getrennt werden, das erkennt awk nicht als float Zahl an. Also muss der Punkt durch ein Komma getrennt werden. Mein Vorschlag funktioniert leider nicht:

cat tmp.prn?? | awk '{ if ( NF >= 2 ) gsub(/./,","), print 90-$2, $3*190.0}'

Bin für jede Idee dankbar.

Guten Rutsch!
 
Bei Regular Expressions bedeutet der Punkt "irgendein Zeichen". Wenn Du mit dem Punkt das Zeichen "." meinst, dann musst Du es mit einem Backslash maskieren.
/\./ matcht Punkte.
 
Wieso funktioniert dieser Ausdruck für die Datei tmp.prn11 nicht:
awk 'gsub(/\./,",",tmp.prn11)'
 
OK, diese Lösung hat funktioniert:

awk '{gsub(/\./,","); print }' Datei