当前位置:  技术问答>linux和unix

怎么去掉掉数字后面多余的0?

    来源: 互联网  发布时间:2016-05-02

    本文导语:  文件内容如下 1|1.000|5.29000| 2|5.040|9.53030| 3|9.045500|5.23000| 希望变成 1|1|5.29| 2|5.04|9.5303| 3|9.0455|5.23| 即将多余的小数点及尾部的0去掉 有什么好办法? | 再修正一下 sed 's/(.[0-9]+[1-9]|.[1-9])0+|/1|/g...

文件内容如下
1|1.000|5.29000|
2|5.040|9.53030|
3|9.045500|5.23000|

希望变成
1|1|5.29|
2|5.04|9.5303|
3|9.0455|5.23|

即将多余的小数点及尾部的0去掉 有什么好办法?

|
再修正一下

sed 's/(.[0-9]+[1-9]|.[1-9])0+|/1|/g;s/.0+|/|/g' dd.dat

|
这个简单啊,你把每个字段存入一个字符串然后用atoi接口转成一个浮点数,然后再直接print出来,就没有后面的0及不必要的小数点啦。

|
文件读写出来都是字符了,你那些多出来的0都是一个个的字符,你还不会去掉?
重新读写,就搞定了呗。

|
vim 的话,执行


:g/.*0+|/s//|/g

|
友情up

|
lz 看看是否写错,执行的结果可以去除 9.53030 后的 0

|
不知 lz 用的什么版本的 VIM

试了 VIM 7.1 和 7.2,没有问题

照理说,正则表达式不应该出问题

|
sed 也是一样的

sed 's/.*0+|/|/g' yourdata.dat


自己加 -i 选项

|
1|1.000|5.29000|
2|5.040|9.53030|
3|9.045500|5.23000|
4|3.010|3.010|


sed 's/.?0+|/|/g' dd.dat


还是换成 ? 吧,匹配 0 和 1 次 . 符号

1|1|5.29|
2|5.04|9.5303|
3|9.0455|5.23|
4|3.01|3.01|

|
sed 's/(.[0-9]+[1-9])0+|/1|/g;s/.0+|/|/g' dd.dat


这个应该匹配比较好


1|1.000|5.29000|
2|5.040|9.53030|
3|9.045500|5.23000|
4|3.010|3.010|
10|200|22200|
300|22.00|220.000|
4000|2200|22.000|
3000|22.0|222000|

==>

1|1|5.29|
2|5.04|9.5303|
3|9.0455|5.23|
4|3.01|3.01|
10|200|22200|
300|22|220|
4000|2200|22|
3000|22|222000|


|
    :[range]s/pattern/string/[c,e,g,i]5.1 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java去掉html标签 必须首先去掉双引号的正则
  • c#字符串去掉空格的二种方法(去掉两端空格)
  • shell trim 去掉字符串两边的空格,不去掉中间的 怎么做?
  • 如何在DOS下去掉文件隐藏和只读属性阿?
  • 怎么用shell命令去掉文件开头的空行
  • 执行程序时如何去掉"./"
  • Qt 4.4.3 版本,在QtabWidget中页标签的虚线框怎么去掉啊?
  • 要求去掉Frame,怎么办????
  • datatable去掉重复行的方法
  • jquery iis7站长之家
  • 请问JAVA中怎样去掉字符串后面的空格,谢谢!!!
  • *********如何去掉系统启动时的启动项和服务???????????
  • 怎样去掉硬盘分区里的Linux信息?
  • 如何去掉文件中的行尾空格呢?
  • 如何去掉文件第一行的空行?
  • qte如何去掉鼠标指针
  • 如何cp就没有提示了,现在如果有重复文件还提示。想去掉。
  • 请问ld -s 会不会去掉重定位信息
  • gVim小问题! 如何将文字的粗体显示去掉?
  • 如何去掉文本中的空行,在线等,急!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3