对浮点数进行Sed或Awk过滤

时间:2013-10-21 00:08:21

标签: command-line sed awk grep

我在文件中有一行:

"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

然后摆脱浮点数周围的双引号

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

使用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