免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7144 | 回复: 22

怎么把 +00500 处理为 +500?? [复制链接]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-05-03 06:20:00
发表于 2011-11-14 15:25 |显示全部楼层
怎样应用sed

   怎么把+005000处理为 +5000
         把+000.50处理为 +0.5
         
示例数据:|+005000|+000.50|
    处理结果:|+5000|+0.5|




最好用sed
                         谢过各位。。。。。。。。。。。。。。。。。。。。。

论坛徽章:
0
发表于 2011-11-14 15:37 |显示全部楼层
sed不会
来个awk的
  1. echo "|+005000|+000.50|"|awk -F\| '{for(i=1;i<=NF;i++)if($i)$i="+"$i+0}1' OFS=\|
复制代码

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
发表于 2011-11-14 16:21 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2011-11-14 16:56 |显示全部楼层
本帖最后由 jason680 于 2011-11-14 17:18 编辑

同样的正则perl可以... sed还要再....

$ echo "|+000500|+000.50000|+001.501000|" | sed -r 's/\|\+0+/|+/g;s/\+\./+0./g;s/(\.[0-9]+?)0+\|/\1|/g'
|+500|+0.5000|+1.50100|

$ echo "|+000500|+000.50000|+001.501000|" | perl -pe  's/\|\+0+/|+/g;s/\+\./+0./g;s/(\.[0-9]+?)0+\|/\1|/g'
|+500|+0.5|+1.501|

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
发表于 2011-11-14 17:08 |显示全部楼层
回复 1# 5itle


    +0003.000 这种格式处理为 +3还是……?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
发表于 2011-11-14 17:19 |显示全部楼层
回复 4# jason680


    Perler 会很失望吧。

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
发表于 2011-11-14 17:29 |显示全部楼层
sed 's/+00/+/g;s/\.50/.5/'

不知道这样能否让lz满意。。。。。

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2011-11-14 17:34 |显示全部楼层
回复 6# blackold

Perl功能正常.... 但sed 不OK也....   

Perler要失望什么!!??

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
发表于 2011-11-14 17:38 |显示全部楼层
回复 8# jason680

比如,perl 不应该用\1吧?

sed 也可以实现的,关键要看正则怎么写。

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2011-11-14 17:47 |显示全部楼层
回复 9# blackold


我不知道误会在那....

当我想到....
|+5000|+0.501000| 想要去除 小数000时.
(同时又不能不小心去除5000的零)
同样的正则sed无法做到....

请教黑哥,sed是否有更好的方法,让大家学习一下.谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP