使用Shell获取文本文件中列级别的值总和

时间:2019-05-30 11:06:38

标签: bash shell awk

我的查询很容易使用shell获取文本文件中列级别的值的总和-即在文本文件中添加包括总和的新记录。

例如以下示例:

name usersToday usersTommorrow    
Data1 92 181    
DataTwo 5 7    
Something 61 73    
Something_with_long_name 0 0

所需的输出是

name usersToday usersTommorrow    
Data1 92 181   
DataTwo 5 7    
Something 61 73  
Something_with_long_name 0 0
Total 158 262

请注意,文本文件将每天定期使用新的数据列进行更新。

所以在第2天-发布求和命令后,文件将像

name usersToday day2
Data1 92 181    
DataTwo 5 7    
Something 61 73    
Something_with_long_name 0 0
Total 158 262

第3天-附加新数据后,文件将像

name usersToday day2 day3
Data1 92 181 52
DataTwo 5 7 53
Something 61 73 25    
Something_with_long_name 0 0 26
Total 158 262 

所以我希望第三天的总和需要更新。

1 个答案:

答案 0 :(得分:2)

考虑到您实际的Input_file与显示的示例相同,请您尝试以下操作。

awk 'FNR>1 && NF{first+=$2;second+=$3} 1; END{print "Total "first,second}' Input_file