• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> 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