我有csv文件,如下面的
Name Amount Interest
JB 10000 0.5
Jefh 50000 1.25
John 20000 0.25
我想使用awk添加一个列,如follwoing
Name Amount Interest Total Interest
JB 10000 0.5 50
Jefh 50000 1.25 625
John 20000 0.25 50
我正在使用以下命令来实现
awk -F, '$8 > 0 {print $1,",",$2,",",$3,",",$2*$3}
但我得到的输出如下,因为它也是第一行的乘法
Name Amount Interest 0
JB 10000 0.5 50
Jefh 50000 1.25 625
John 20000 0.25 50
如何添加列名而不是0
答案 0 :(得分:1)
首先是awk-command add:
NR==1 {print $0,"Total_Interest"; next}
这将仅适用于第一行输入,打印字符串,并跳转到下一行/记录
因此,整个调用看起来应该是这样的:
awk -F, 'NR==1 {print $0,"Total_Interest"; next}
$8 > 0 {print $1,",",$2,",",$3,",",$2*$3}' input
答案 1 :(得分:1)
我会这样做:
awk -v OFS="\t" '{$(NF+1) = (NR==1 ? "Total Interest" : $2 * $3)} 1'
为每一行添加一个字段,然后只打印该行。