免费注册 查看新帖 |

Chinaunix

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

awk屏蔽科学计数法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-17 11:48 |显示全部楼层 |倒序浏览
需求如下
[postgres@bdttestone ~]$ awk -F ,  '{printf "%.2f\n",$3}' test.txt
0.00
27428.92
26548.04
12232842.28
34208.00
41837.68
31393.04
54856.36
24460.56
20854.32
37862.32
0.00
0.00
现在需要统计列的和值

[postgres@bdttestone ~]$  awk -F ,  '{printf "%.2f\n",$3}' test.txt |awk '{a+=$1}END{print  a} '
1.25323e+07


请问如何屏蔽这个 科学计数法呢?

谢谢

论坛徽章:
0
2 [报告]
发表于 2009-07-17 12:59 |显示全部楼层
多谢
我想统计 很多列的和值
2009-07-16 , 22290001 ,    27428.920000000000 ,       13 ,    653523.000000000000 ,    97778.000000000000 , 7822.2400000000000000 ,    11775.000000000000 ,   602771.160000000000
2009-07-16 , 22290002 ,    26548.040000000000 ,        4 ,  5635.0000000000000000 , 1916.0000000000000000 ,  153.2800000000000000 , 6220.0000000000000000 ,    36640.320000000000
2009-07-16 , 22290003 , 12232842.280000000000 ,        6 , -11495620.000000000000 ,  242.0000000000000000 ,   19.3600000000000000 , 2215.0000000000000000 ,   739214.640000000000
2009-07-16 , 22290004 ,    34208.000000000000 ,        4 ,     12880.000000000000 , 2188.0000000000000000 ,  175.0400000000000000 , 7210.0000000000000000 ,    52285.040000000000
2009-07-16 , 22290005 ,    41837.680000000000 ,        2 ,  1080.0000000000000000 ,  644.0000000000000000 ,   51.5200000000000000 , 4455.0000000000000000 ,    46780.200000000000
2009-07-16 , 22290006 ,    31393.040000000000 ,        3 ,  1202.0000000000000000 ,  798.0000000000000000 ,   63.8400000000000000 , 2025.0000000000000000 ,    33885.880000000000
2009-07-16 , 22290007 ,    54856.360000000000 ,        1 ,  4450.0000000000000000 ,  248.0000000000000000 ,   19.8400000000000000 ,  200.0000000000000000 ,    59278.200000000000
2009-07-16 , 22290008 ,    24460.560000000000 ,        4 ,  -268.0000000000000000 ,  688.0000000000000000 ,   55.0400000000000000 , 4080.0000000000000000 ,    27639.600000000000
2009-07-16 , 22290009 ,    20854.320000000000 ,        2 ,    58.0000000000000000 ,  164.0000000000000000 ,   13.1200000000000000 ,    13015.000000000000 ,    33776.440000000000
2009-07-16 , 22290010 ,    37862.320000000000 ,        7 ,    -49714.000000000000 , 1870.0000000000000000 ,  149.6000000000000000 ,    12600.000000000000 , -972.0800000000000000
(10 rows)

[postgres@bdttestone ~]$ awk -F , '{a+=$3;b+=$4;c+=$5;d+=$6;e+=$7;f+=$8;g+=$9}END{print a,b,c,d,e,f,g} ' 1.txt
1.25323e+07 46 -10866774 106536 8522.88 63795 1.6313e+06

但是我如果用printf呢

[postgres@bdttestone ~]$ awk -F , '{a+=$3;b+=$4;c+=$5;d+=$6;e+=$7;f+=$8;g+=$9}END{printf "%.2f\n" ,a,b,c,d,e,f,g} ' 1.txt
12532291.52
只能输出 第一个数  
还请大家 指点一下

论坛徽章:
0
3 [报告]
发表于 2009-07-17 13:12 |显示全部楼层
$ awk -F , '{a+=$3;b+=$4;c+=$5;d+=$6;e+=$7;f+=$8;g+=$9}END{printf "%.2f %.2f %.2f %.2f %.2f %.2f %.2f\n" ,a,b,c,d,e,f,g}' 1.txt
12532291.52 46.00 -10866774.00 106536.00 8522.88 63795.00 1631299.40

这样就可以了
谢谢楼上的几位!

论坛徽章:
0
4 [报告]
发表于 2009-07-17 13:29 |显示全部楼层
如果要是想把 得出的列和值 追加到列的最后呢

有什么方法么 ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP