假设我有一个包含以下行的文本文件:
foo 10
bar 15
bar 5
foo 30
...
Run Code Online (Sandbox Code Playgroud)
生成以下输出的最简单方法是什么:
foo 40
bar 20
Run Code Online (Sandbox Code Playgroud)
?
这样做:
awk '{arr[$1]+=$2;} END { for (i in arr) print i, arr[i]}' file
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请阅读Awk的关联数组.
使用这个awk脚本:
awk '{sums[$1] += $2} END {for (a in sums) print a, sums[a]}' infile
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
foo 40
bar 20
Run Code Online (Sandbox Code Playgroud)