2011-02-08 12 views
5

私はawkを使い慣れていないので、これを理解できないようです。どのように正規表現を使って1つのフィールドに置き換えることができますか?awk stumper:フィールド内の正規表現の置き換え

perlでは、関心のあるフィールドを変数に割り当て、次に$myvar =~ s/foo/bar/gを割り当てることができました。もちろんperlでも私は自分のフィールド管理をしなければなりません。それはawkで簡単です。

今のところ問題があるのは、ヨーロッパのマネーレコードです。金額欄にカンマをピリオドに変更したいと考えています。しかし、私はそのフィールドだけを対象にする必要があるので、カンマが小文字の句読点として使用される可能性のある他のフィールドは使用しないでください。

解決策は想像以上に難しいですか?それとも簡単?レコード区切りを変更する必要がありますか?

ありがとうございました!

答えて

6

サブ()を変更するには、フィールド(または変数)である第三引数を受け付けます。

$ echo '02/08/2011 7,33 Shopping' | awk '{sub(/,/,".",$2)} 1' 
02/08/2011 7.33 Shopping 
+0

うわー、ない私は私のオライリーでいることを逃したかを確認してください。そこにそれがある。全員でなければならなかった。ありがとうございました! – rockriver

関連する問題