awk:定数と最後の列の積である2つの列をcsvに追加します。

awk:定数と最後の列の積である2つの列をcsvに追加します。

最後の列に定数を掛けた内容を含むCSVファイルに2つの新しい列を追加しようとしています。最後の列はポンド記号と数字で構成されます。

入力する:

id,tester,company,chief,previous_test,test,date,result,cost
6582983b-61d4-4371-912d-bbc76bb8208b,Audrey Feest,Pagac-Gorczany,Claudine Moakson,18/02/2019,Passwords,20/05/2020,none,£11897.96

予想出力:

id,tester,company,chief,previous_test,test,date,result,cost,euro,dollar
6582983b-61d4-4371-912d-bbc76bb8208b,Audrey Feest,Pagac-Gorczany,Claudine Moakson,18/02/2019,Passwords,20/05/2020,none,¬£11897.96,13682.65€,$16538.16

これまでに私がしたことは、この列の1つの部分文字列を取得してそれを使用して2つの異なる部分文字列を作成することでしたが、私が得たのはハッシュ記号なしで最後の列の2つのコピーだけでした。

awk -F, -v OFS="," 'NR==1 { print $0,"euro,dollar"; next }
{ w = substr($9, 2);
  u = substr($9, 2);
  print $0, w, u }' file.csv

今やりたいことは、2つの列に定数(それぞれ1.15と1.39)を掛け、各列に記号(€と$)を追加することです。print最後のコマンドを実行するのは難しいです。

答え1

awk 'BEGIN{ FS=OFS=","; CONVFMT="%.2f" }
          { $(NF+1)=(NR>1?    substr($9,3)*1.15"€":"euro")
            $(NF+1)=(NR>1? "$"substr($9,3)*1.39   :"dollar")
}1' infile

読む用途は何ですかCONVFMT

関連情報