簡體   English   中英

如何使用具有列名稱的awk創建列

[英]how to create column using awk with column name

我有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

作為第一個awk-command添加:

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

我會這樣做:

awk -v OFS="\t" '{$(NF+1) = (NR==1 ? "Total Interest" : $2 * $3)} 1'

這會為每一行添加一個字段,然后只打印該行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM