Bash 如何使用unix从多个文件中添加数字并写入另一个文件
我有五个文件,如下所示,其中一行用逗号分隔 文件1Bash 如何使用unix从多个文件中添加数字并写入另一个文件,bash,unix,awk,Bash,Unix,Awk,我有五个文件,如下所示,其中一行用逗号分隔 文件1 abc,100 文件2 abc,200 文件3 abc,300 文件4 abc,700 文件5 abc,800 我需要通过添加以上所有文件中的数字作为输出。 输出脚本应为单行代码 输出文件 abc,2100 尝试: 这将可用于多键输入文件 对于新的预期产出: awk -F\, '{a[$1]+=$2}END{for (i in a){key=key"_"i;cont+=a[i]};sub(/^_/,"",key);print key
abc,100
文件2
abc,200
文件3
abc,300
文件4
abc,700
文件5
abc,800
我需要通过添加以上所有文件中的数字作为输出。
输出脚本应为单行代码
输出文件
abc,2100
尝试:
这将可用于多键输入文件
对于新的预期产出:
awk -F\, '{a[$1]+=$2}END{for (i in a){key=key"_"i;cont+=a[i]};sub(/^_/,"",key);print key","cont}' file*
结果
谢谢,如果第二个文件有bbc,200,那么我应该像abc_bbc,2100,这是一个非常不同的问题。你不应该编辑这个问题,你应该发布一个新的。谢谢,如果第二个文件有bbc,200那么我应该像abc_bbc,2100,你应该在另一个帖子中提问,反正我更新了我的答案
awk -F\, '{a[$1]+=$2}END{for (i in a){print i","a[i]}}' file* > target
awk -F\, '{a[$1]+=$2}END{for (i in a){key=key"_"i;cont+=a[i]};sub(/^_/,"",key);print key","cont}' file*
abc_bbc,2100