Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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中的单词行求和值_Bash - Fatal编程技术网

基于bash中的单词行求和值

基于bash中的单词行求和值,bash,Bash,我有一个脚本,输出一个数字,后跟一个空格和一个字母,例如: 2685 R 2435 M 984 D 924 A 353 R 291 A 593 D 577 A 476 R 769 M 629 R 179 D 有没有一种简单的方法可以根据数字后面的字母/单词对数字求和?我希望这是输出: 1792 A 1756 D 3204 M 4143 R 我尝试过sort、awk和sed组合,但找不到一个很好的求和方法 谢谢。以下awk可能对您有所帮助 awk '{a[$2]+=$1} END{for(i

我有一个脚本,输出一个数字,后跟一个空格和一个字母,例如:

2685 R
2435 M
984 D
924 A
353 R
291 A
593 D
577 A
476 R
769 M
629 R
179 D
有没有一种简单的方法可以根据数字后面的字母/单词对数字求和?我希望这是输出:

1792 A
1756 D
3204 M
4143 R
我尝试过sort、awk和sed组合,但找不到一个很好的求和方法

谢谢。

以下awk可能对您有所帮助

awk '{a[$2]+=$1} END{for(i in a){print a[i],i}}' Input_file
如果您想按照第二个字段对其进行排序,那么在上述代码中也附加| sort-k2。

以下awk可能会对您有所帮助

awk '{a[$2]+=$1} END{for(i in a){print a[i],i}}' Input_file

如果您想按照第二个字段对其进行排序,请在上述代码中附加| sort-k2。

非常有效,谢谢!我在末尾添加了| sort-nr,以便首先按最高的数字进行排序。bash script.sh | awk'{a[$2]+=$1}END{fori in a{print a[i],i}}}| sort-nrWorks非常好,谢谢!我在末尾添加了| sort-nr,以便首先按最高的数字进行排序。bash script.sh|awk'{a[$2]+=$1}END{fori in a{print a[i],i}}}}排序-您在哪里做出了努力?把它和问题一起贴出来。你的努力在哪里?把它和问题一起贴出来。