awk中的脚本
我有一个文本文件,内容如下:awk中的脚本,awk,unix,Awk,Unix,我有一个文本文件,内容如下: 1,A,100 2,A,200 3,B,150 4,B,100 5,B,250 我需要输出为: A,300 B,500 这里的逻辑是第二个字段为A的所有第三个字段的总和,对于B也是如此 我们如何使用awk实现它?您可以使用散列来实现它,如下所示: awk -F"," '{cnt[$2]+=$3}END{for (x in cnt){printf "%s,%d\n",x,cnt[x]}}' file 嗯,我不准备为您编写和调试代码。但是,您需要的元素是: 可以
1,A,100
2,A,200
3,B,150
4,B,100
5,B,250
我需要输出为:
A,300
B,500
这里的逻辑是第二个字段为A的所有第三个字段的总和,对于B也是如此
我们如何使用awk实现它?您可以使用
散列来实现它,如下所示:
awk -F"," '{cnt[$2]+=$3}END{for (x in cnt){printf "%s,%d\n",x,cnt[x]}}' file
嗯,我不准备为您编写和调试代码。但是,您需要的元素是:
- 可以使用将字段分隔符更改为逗号
- 您关心的字段显然是第二个(
$2
)和第三个($3
)字段
- 您可以创建自己的来将值累积到中。
- 我建议使用一个,由字段2索引
$ awk -F"," '{_[$2]+=$3}END{for(i in _)print i,_[i]}' OFS="," file
A,300
B,500