免费注册 查看新帖 |

Chinaunix

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

新手提问数字处理问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-22 19:53 |只看该作者 |倒序浏览
新手,awk,sed等还不熟悉,现在只需要用到一点内容,其他的都还能应付过来,希望有人能指点. 还在研究中.

例如一个数字, 973, 如果最后一位数字为34567,就转变为975, 如果是971,972,就转变为970, 如果是978,979,就转变为980.如下:

970
971 -> 970
972 -> 970
973 -> 975
974 -> 975
975
976 -> 975
977 -> 975
978 -> 980
979 -> 980
980
981 ->980
982 -> 980
983 ->985

实在不想用取模判断数字,if then else的方法.想直接用sed,awk写成.

[ 本帖最后由 mapleleaf35 于 2009-4-22 20:15 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-04-22 19:56 |只看该作者

  1. [root@bj_manager cu]# cat 22
  2. 970
  3. 971
  4. 972
  5. 973
  6. 974
  7. 975
  8. 976
  9. 977
  10. 978
  11. 979
  12. 980
  13. [root@bj_manager cu]# sed 's/97[12]/970/;s/97[3-7]/975/;s/97[89]/980/' 22
  14. 970
  15. 970
  16. 970
  17. 975
  18. 975
  19. 975
  20. 975
  21. 975
  22. 980
  23. 980
  24. 980
复制代码

论坛徽章:
0
3 [报告]
发表于 2009-04-22 20:16 |只看该作者
前面的数字不是固定的. 对所有数字变换. (不好意思,刚才表达错误)

[ 本帖最后由 mapleleaf35 于 2009-4-22 20:18 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-04-22 20:16 |只看该作者
哦,或许我理解错了,楼主是想对所有的数字进行处理吧?
awk也需要对最后一位分类处理啊,不知道楼主想要什么样的处理。

论坛徽章:
0
5 [报告]
发表于 2009-04-22 20:17 |只看该作者
原帖由 mapleleaf35 于 2009-4-22 20:16 发表
前面的数字不是固定的. 所以只是想取后面的2位数字做变换.

只要最后两位的变化么?

那999变成900就行了?

论坛徽章:
0
6 [报告]
发表于 2009-04-22 20:18 |只看该作者

回复 #5 kwokcn 的帖子

所有数字.  999->1000
不好意思,兄台

论坛徽章:
0
7 [报告]
发表于 2009-04-22 20:20 |只看该作者
这样不知道是否符合你的要求了?


  1. awk '$0~/^[0-9]*[0-9]$/{s=$0%10; if(s<3)$0=$0-s;else if(s>2&&s<8) $0=$0-s+5; else $0=$0-s+10; print}' 22
复制代码

论坛徽章:
0
8 [报告]
发表于 2009-04-22 20:22 |只看该作者
非常感谢兄台. 我会继续努力学习,种类太多顾及不了所有东东.

论坛徽章:
0
9 [报告]
发表于 2009-04-22 20:23 |只看该作者
原帖由 mapleleaf35 于 2009-4-22 20:22 发表
非常感谢兄台. 我会继续努力学习,种类太多顾及不了所有东东.

论坛徽章:
1
摩羯座
日期:2015-01-08 14:01:55
10 [报告]
发表于 2009-04-22 21:30 |只看该作者
楼主的要求末位数为89的时候,十位数要递增,好像sed中没有数值计算的功能,郁闷。
看样子,awk还是要好好学啊。
攻克awk去了……
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP