19

我有一个包含以下内容的文件“test.txt”

+foo+
+bar+

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

'foo'
'bar'

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

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

正确的方法是什么?

4

4 回答 4

27

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

sed  "s/\+/\'/g" test.txt
于 2013-08-08T06:40:41.660 回答
6

这可能适用于 yoyu (GNU sed):

sed 'y/+/'\''/' file
于 2013-08-08T07:38:35.257 回答
3

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

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

# output: 'foo'

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

sed -i.bak "s/+/'/g" test.txt
于 2013-08-08T06:44:00.550 回答
3

您还可以使用以下方法替换文件中的所有+with实例:'tr

tr '+' "'" < inputfile
于 2013-08-08T06:47:43.250 回答