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

aaa121aaa122aaa124aaa151aaa152bbb121bbb122最后我想得出的输出结果为aaa127aaa153bbb123请问用awk或者其他方式怎... 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或者其他方式怎么实现呢?谢谢。
展开
 我来答
百度网友5311d79
2011-08-29 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3212万
展开全部
新建一个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 即可得到结果
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式