我正在尝试向 csv 文件添加两个新列,其中包含最后一列与常量的乘法。最后一列由英镑符号和后跟的数字组成。
输入:
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
到目前为止,我所做的是获取此列的一个子字符串,并用它创建另外两个子字符串,但我得到的只是最后一列的两个副本,不带井号:
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
我现在要做的就是将这两列分别乘以一个常数(分别为 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