sed用boolean替换带引号的字符串?

时间:2014-09-18 14:21:16

标签: regex sed

我知道这一定很容易,但我无法弄清楚我做错了什么。我想替换

'2.0.0'

FALSE

我有

sed -i.bak s/"'\''2.0.0'\''"/"FALSE"/g config.php

我也试过......

sed -i.bak s/"'2.0.0'"/FALSE/g config.php

几乎所有我能想到的单一组合,都是

'2.0.0' => 'FALSE'

我怎样才能删除单引号?

2 个答案:

答案 0 :(得分:1)

以下是使用awk

执行此操作的方法
awk '{sub(q"2.0.0"q,"FALSE")}1' q="'" file

将其写回文件:

awk '{sub(q"2.0.0"q,"FALSE")}1' q="'" file > tmp && mv tmp file

答案 1 :(得分:0)

这对我有用(参见下面的Jotne评论):

echo "'2.0.0'" | sed 's/.2\.0\.0./FALSE/'

注意:单个点。是任意单个字符的正则表达式。反斜杠一个点\。代表一个字面点。

编辑:sed表达式的双重和单引号的组合对我也有用:

echo "'2.0.0'" | sed "s/'2\.0\.0'/FALSE/"