免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3953 | 回复: 9
打印 上一主题 下一主题

shell求和---在线等.... [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-06-04 16:32 |只看该作者 |倒序浏览
我的文件中有这样的数
00|M00a|0A|a00|0.00|15.00
00|M00a|0A|a00|0.00|15.00
00|M0Z1|0B|my|10.00|0.00
00|M0Z1|0A|a00|10.00|0.00
00|M005|0A|a00|0.00|1.48
00|M005|0A|a00|2.96|0.00
00|M005|0A|a00|2.96|0.00

我想把带有00|M005|0A|a00这样数据的一行中后两个数据分别求和,如何做?


即想把
00|M00a|0A|a00|0.00|15.00
00|M00a|0A|a00|0.00|15.00
00|M0Z1|0A|a00|10.00|0.00
00|M005|0A|a00|0.00|1.48
00|M005|0A|a00|2.96|0.00
00|M005|0A|a00|2.96|0.00
这些行中最后2个数据分别相加得15.92和31.48
如何做?
谢谢各位了!

论坛徽章:
0
2 [报告]
发表于 2005-06-04 16:34 |只看该作者

shell求和---在线等....

或者,
现在,我已经把后两个数据分别读到(read)两个变量fee1和fee2中了,如何对fee1和fee2分别求和??

类似于sum1=sum1+fee1
         sum2=sum2+fee2

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
3 [报告]
发表于 2005-06-04 16:42 |只看该作者

shell求和---在线等....


  1. awk -F\| '$1=="00"&&$2=="M005"&&$3=="0A"&&$4=="a00"{a+=$5;b+=$6}END{print a,b}' file
复制代码

PS:awk的用法见置顶shell基础十二篇

论坛徽章:
0
4 [报告]
发表于 2005-06-04 17:19 |只看该作者

shell求和---在线等....

谢谢寂寞烈火,那我read的两个变量的值应该是字符型的吧,如何求和?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
5 [报告]
发表于 2005-06-04 17:24 |只看该作者

shell求和---在线等....

expr $a + $b
$((a+b))
echo $a+$b|bc
...
PS:shell自动识别变量类型,无须事先声明

论坛徽章:
0
6 [报告]
发表于 2005-06-04 17:32 |只看该作者

shell求和---在线等....

呵呵,不是了,我是想把每行里读到a的值相加
再把每行里读入b的值相加
形如:sum=sum+a
         s=s+b的
也就是循环相加。。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2005-06-04 19:11 |只看该作者

shell求和---在线等....

原帖由 "seabore" 发表:
呵呵,不是了,我是想把每行里读到a的值相加
再把每行里读入b的值相加
形如:sum=sum+a
         s=s+b的
也就是循环相加。。

抽空看看十三问吧/搜一下论坛的精华贴

论坛徽章:
0
8 [报告]
发表于 2005-06-04 20:45 |只看该作者

shell求和---在线等....

呵呵,谢谢了。

单位的网有点问题,打不开十三问的连接,搜索的连接也打不开

论坛徽章:
0
9 [报告]
发表于 2005-06-05 11:27 |只看该作者

shell求和---在线等....

我最后是这么处理的,因为expr不能进行小数运算,所以,我先用bc把小数转成整数,然后再用
loop=0
loop=`expr $loop + $a`来算循环,笨点,但解决了问题。
我实在没弄明白用bc如何做循环加,有高手指点一下么?

论坛徽章:
0
10 [报告]
发表于 2014-01-21 16:31 |只看该作者
awk -F "|" '{m+=$5;n+=$6} END{print m,n}'  filename
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP