1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

awk

Dieses Thema im Forum "Unix & Terminal" wurde erstellt von daniel.macbook, 27.12.08.

  1. daniel.macbook

    daniel.macbook Transparent von Croncels

    Dabei seit:
    09.01.07
    Beiträge:
    313
    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!
     
  2. tfc

    tfc Ontario

    Dabei seit:
    21.07.07
    Beiträge:
    348
    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.
     
  3. daniel.macbook

    daniel.macbook Transparent von Croncels

    Dabei seit:
    09.01.07
    Beiträge:
    313
    Wieso funktioniert dieser Ausdruck für die Datei tmp.prn11 nicht:
    awk 'gsub(/\./,",",tmp.prn11)'
     
  4. daniel.macbook

    daniel.macbook Transparent von Croncels

    Dabei seit:
    09.01.07
    Beiträge:
    313
    OK, diese Lösung hat funktioniert:

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

Diese Seite empfehlen