免费注册 查看新帖 |

Chinaunix

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

[文本处理] 关于两列相除的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-18 14:48 |只看该作者 |倒序浏览
大家好,我有个文件,内容如下:

ENSDARG00000000001      3.27380429174479        1.98750741130911
ENSDARG00000000002      0.940652200971581       0.0843038451064938
ENSDARG00000000018      30.3887505657997        2.99900563739494
ENSDARG00000000019      67.0674337335146        30.651294709011
ENSDARG00000000068      8.67022010625218        7.93729318466146
ENSDARG00000000069      11.0602201698284        112.9270989128
ENSDARG00000000086      7.10541791657885        0.983544859575761
ENSDARG00000000102      0.43109378948616        0
ENSDARG00000000103      17.0626155665277        2.56603172417073
ENSDARG00000000142      3.19653228435773        0.228591356895967

我如果用命令
cat a|awk '$4=$3/$2'
ENSDARG00000000001 3.27380429174479 1.98750741130911 0.607094
ENSDARG00000000002 0.940652200971581 0.0843038451064938 0.0896228
ENSDARG00000000018 30.3887505657997 2.99900563739494 0.098688
ENSDARG00000000019 67.0674337335146 30.651294709011 0.457022
ENSDARG00000000068 8.67022010625218 7.93729318466146 0.915466
ENSDARG00000000069 11.0602201698284 112.9270989128 10.2102
ENSDARG00000000086 7.10541791657885 0.983544859575761 0.138422
ENSDARG00000000103 17.0626155665277 2.56603172417073 0.150389
ENSDARG00000000142 3.19653228435773 0.228591356895967 0.0715123

请问为啥第三列为0的即ENSDARG00000000102 在结果里面输不出来呢,谢谢大家!

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
2 [报告]
发表于 2014-06-18 14:52 |只看该作者
  1. [root@ awktest]# echo 1 0 |awk '$3=$1/$2'
  2. awk: (FILENAME=- FNR=1) 致命错误: 试图除0
复制代码

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
3 [报告]
发表于 2014-06-18 14:56 |只看该作者
回复 2# 关阴月飞


    理解错啦,楼主的意思是:echo 1 0 |awk '$3=$2/$1'。
To 楼主:
这样的话,结果就是 awk '0',0 嘛,就不输出了呗。这和 awk '1' 正好相反的嘛。

论坛徽章:
0
4 [报告]
发表于 2014-06-18 14:56 |只看该作者
@chenjiali1
  1. [root@GO-EMAIL-1 test]# cat URFILE
  2. ENSDARG00000000001      3.27380429174479        1.98750741130911
  3. ENSDARG00000000002      0.940652200971581       0.0843038451064938
  4. ENSDARG00000000018      30.3887505657997        2.99900563739494
  5. ENSDARG00000000019      67.0674337335146        30.651294709011
  6. ENSDARG00000000068      8.67022010625218        7.93729318466146
  7. ENSDARG00000000069      11.0602201698284        112.9270989128
  8. ENSDARG00000000086      7.10541791657885        0.983544859575761
  9. ENSDARG00000000102      0.43109378948616        0
  10. ENSDARG00000000103      17.0626155665277        2.56603172417073
  11. ENSDARG00000000142      3.19653228435773        0.228591356895967
  12. [root@GO-EMAIL-1 test]# awk '{print($4=$3/$2)}' URFILE
  13. 0.607094
  14. 0.0896228
  15. 0.098688
  16. 0.457022
  17. 0.915466
  18. 10.2102
  19. 0.138422
  20. 0
  21. 0.150389
  22. 0.0715123
复制代码

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
5 [报告]
发表于 2014-06-18 14:58 |只看该作者
回复 3# seesea2517


    知道这个除0会报错了,就应该明白为什么没输出了

论坛徽章:
93
2015年辞旧岁徽章
日期:2019-10-10 10:51:15CU大牛徽章
日期:2014-02-21 14:21:56CU十二周年纪念徽章
日期:2020-10-15 16:55:55CU大牛徽章
日期:2014-02-21 14:22:07羊年新春福章
日期:2019-10-10 10:51:39CU大牛徽章
日期:2019-10-10 10:55:38季节之章:春
日期:2020-10-15 16:57:40ChinaUnix元老
日期:2019-10-10 10:54:42季节之章:冬
日期:2019-10-10 10:57:17CU大牛徽章
日期:2014-02-21 14:22:52CU大牛徽章
日期:2014-03-13 10:40:30CU大牛徽章
日期:2014-02-21 14:23:15
6 [报告]
发表于 2014-06-18 15:08 |只看该作者
回复 5# 关阴月飞


    你没明白我的意思……没输出不是除0报错导致的啦。

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
7 [报告]
发表于 2014-06-18 15:10 |只看该作者
回复 6# seesea2517


    我明白你的意思.....

论坛徽章:
0
8 [报告]
发表于 2014-06-18 15:27 |只看该作者
@关阴月飞

人家的0也没有当被除数啊!

论坛徽章:
0
9 [报告]
发表于 2014-06-18 15:39 |只看该作者
@chenjiali1
  1. [root@GO-EMAIL-1 test]# awk '{print($1,$2,$3,$4=$3/$2)}' URFILE
  2. ENSDARG00000000001 3.27380429174479 1.98750741130911 0.607094
  3. ENSDARG00000000002 0.940652200971581 0.0843038451064938 0.0896228
  4. ENSDARG00000000018 30.3887505657997 2.99900563739494 0.098688
  5. ENSDARG00000000019 67.0674337335146 30.651294709011 0.457022
  6. ENSDARG00000000068 8.67022010625218 7.93729318466146 0.915466
  7. ENSDARG00000000069 11.0602201698284 112.9270989128 10.2102
  8. ENSDARG00000000086 7.10541791657885 0.983544859575761 0.138422
  9. ENSDARG00000000102 0.43109378948616 0 0
  10. ENSDARG00000000103 17.0626155665277 2.56603172417073 0.150389
  11. ENSDARG00000000142 3.19653228435773 0.228591356895967 0.0715123
复制代码

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
10 [报告]
发表于 2014-06-18 15:41 |只看该作者

高科技不是这么玩的。老老实实写吧

awk '{$4=$3/$2}1' 不久完了么
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP