关于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或者其他方式怎么实现呢?谢谢。 展开
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或者其他方式怎么实现呢?谢谢。 展开
1个回答
展开全部
新建一个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 即可得到结果
#!/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 即可得到结果
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询