【问题标题】:Sed or Awk filtering on floating point numbers对浮点数进行 Sed 或 Awk 过滤
【发布时间】:2013-10-21 13:43:41
【问题描述】:

我在文件中有一行内容如下:

"p" : "1.87","cs" : "chb","c" : "0.00","cp" : "0.00","b" : "2.25"

我希望它阅读的是:

"p" : 1.87,"cs" : "chb","c" : 0.00,"cp" : 0.00,"b" : 2.25

只需去掉浮点数周围的双引号

【问题讨论】:

  • 请向我们展示您到目前为止所做的尝试。

标签: command-line sed awk grep


【解决方案1】:

您可以在 sed 中使用此命令进行操作。

sed -i.bak -r 's/"([0-9]+\.[0-9]+)"/\1/g' data.txt

【讨论】:

  • 试过了,它只是把整行打印出来,没有 " 被删除。
【解决方案2】:

使用gnu awk(在ubuntu 中默认awk)你可以这样做:

awk '{print gensub(/"([0-9]+\.[0-9]+)"/,"\\1","g")}' file
"p" : 1.87,"cs" : "chb","c" : 0.00,"cp" : 0.00,"b" : 2.25

【讨论】:

    猜你喜欢
    • 2015-06-10
    • 2013-12-11
    • 2014-12-10
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    相关资源
    最近更新 更多