关于shell列相加的问题。 假如有一个文本的内容是这样的:

aaa 12 1
aaa 12 2
aaa 12 4
aaa 15 1
aaa 15 2
bbb 12 1
bbb 12 2
最后我想得出的输出结果为
aaa 12 7
aaa 15 3
bbb 12 3
请问用awk或者其他方式怎么实现呢?谢谢。

新建一个awk脚本文件 awk_merge.sh :
#!/usr/bin/awk -f
NR == 1 { col1 = $1; col2 = $2; col3 = $3; }
NR > 1 {
if($1 == col1 && $2 == col2)
col3 += $3;
else
{
print(col1" "col2" "col3);
col1 = $1; col2 = $2; col3 = $3;
}
}
END { print(col1" "col2" "col3); }

赋予可执行权限: chmod +x awk_merge.sh
假设你的原始数据文件叫做file.txt,那么执行 ./awk_merge.sh file.txt 即可得到结果
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜