替换shell中的确切数字

时间:2016-06-16 16:29:45

标签: shell replace sed gsub

我有以下矩阵:

select * 
from data
where dates >= '2016-01-01' and dates <= '2016-01-03'

我想只更换零而不是零,然后点数为0.001,我怎么能用sed或gsub呢?

2 个答案:

答案 0 :(得分:1)

这不是优雅,也不是超级便携,但它适用于您的具体示例:

sed -e 's=^0 =X =g
        s= 0$= X=g 
        s= 0 = X =g' data.txt

首先,它假定输入文件中的字段由一个或多个空格分隔。第一部分在行的开头查找“0”,第二部分在行的末尾查找第二部分,第三部分查找“0”,两边都有空格。

任何特殊原因只能使用sed吗?我确信一个简单的awk脚本可以做得更好,也更健壮。

答案 1 :(得分:-1)

在替换中匹配空格。

echo 0  0.001504    0   0.998496  | sed 's/0[\t ]/Z /g'