如何使用SED替换文件内的撇号

时间:2013-08-08 06:39:07

标签: linux unix sed

我有一个包含以下

的文件“test.txt”
+foo+
+bar+

我想要做的是将它们替换为:

'foo'
'bar'

但为什么这段代码不起作用?

sed  's/\+/\'/' test.txt

这样做的正确方法是什么?

4 个答案:

答案 0 :(得分:20)

请改用"。并添加g标志以替换所有。

sed  "s/\+/\'/g" test.txt

答案 1 :(得分:4)

这可能适合你(GNU sed):

sed 'y/+/'\''/' file

答案 2 :(得分:3)

您还可以使用+替换文件中'的{​​{1}}的所有实例:

tr

答案 3 :(得分:2)

+不是在sed中没有-r开关的特殊字符。您可以在没有任何转义的情况下运行替换命令:

echo '+foo+' | sed "s/+/'/g"

# output: 'foo'

如果要保存更改的文件,请使用:

sed -i.bak "s/+/'/g" test.txt