微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash – 如何将任何列值的总和添加到制表符分隔文件中最后一个记录的最后一列

我需要获取col2的总和并将值添加到最后一个记录的最后一列.请指教,我们如何使用UNIX shell脚本实现此目的.

E.g Input file:
Col1    Col2    Col3    Col4
abc 2   A   null
bcd 3   B   null
adf 4   C   null

Output file
Col1    Col2    Col3    Col4
abc 2   A   null
bcd 3   B   null
adf 4   C   9

解决方法

假设您想在输出中保留空白区域:

$awk '{sum+=$2; s=s $0 ORS} END{ sub("null"ORS"$",sum,s); print s}' file
Col1    Col2    Col3    Col4
abc 2   A   null
bcd 3   B   null
adf 4   C   9

要么:

$awk '{sum+=$2; printf "%s",p} {p=$0 ORS} END{ sub("null$",sum); print}' file
Col1    Col2    Col3    Col4
abc 2   A   null
bcd 3   B   null
adf 4   C   9

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐