awk统计文件的问题

koko214 2007-08-08 01:14:00
对一个文件中的某一列进行统计,两个条件完全相同的AWK语句统计出来的结果却相差很大,不明白原因。。。还请各位指教。程序如下:
awk 'BEGIN{FS=" "} (substr($0,84,1)=="1") {sum1=sum1+substr($0,37,8);sum2=sum2+substr($0,55,8)} END{print sum1,sum2}'

这是第一个,统计出来的结果也是对的

BEGIN{FS=" ";sum1=0;sum2=0}
{
if(substr($0,84,1)=="1")
{
sum1=sum1+substr($0,37,8);
sum2=sum2+substr($0,55,8);
}
}
END{
printf "%d\n",sum1 > "YUsum.log"
printf "%d\n",sum2 >> "YUsum.log"
}

这个程序统计出来的sum2是对的,sum1相差就很大了,不明白为什么,检查了下文件格式,似乎也没什么问题,两个程序几乎都是一样的,为什么统计出来的数会有这么大差异呢??
...全文
230 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
piratelord 2008-11-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 koko214 的回复:]
查明问题了,不是程序的问题,是结果数值超出了整形 的最大范围,所以不正确
[/Quote]

快别卖关子了,快快道来吧!!大家一起学习。
changvy 2007-08-09
  • 打赏
  • 举报
回复
建议楼主给些数据出来了,大家都好看的!
mymtom 2007-08-08
  • 打赏
  • 举报
回复
那第一个程序的结果怎么会是对的?
koko214 2007-08-08
  • 打赏
  • 举报
回复
查明问题了,不是程序的问题,是结果数值超出了整形 的最大范围,所以不正确
mymtom 2007-08-08
  • 打赏
  • 举报
回复
毫无疑问是程序写错了,楼主有不肯给出数据文件!
koko214 2007-08-08
  • 打赏
  • 举报
回复
刚刚又仔细检查了一下统计的数据文件,格式上是没有问题的,为什么两个程序统计出来的数却不一样呢??
koko214 2007-08-08
  • 打赏
  • 举报
回复
数据文件都是同一个
mymtom 2007-08-08
  • 打赏
  • 举报
回复
数据文件呢?

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧