Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何使用unix从多个文件中添加数字并写入另一个文件_Bash_Unix_Awk - Fatal编程技术网

Bash 如何使用unix从多个文件中添加数字并写入另一个文件

Bash 如何使用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

我有五个文件,如下所示,其中一行用逗号分隔

文件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","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