用sed命令将文本替换为冒号

9

I have this command:

sed -i  "s/a:b/b:c/g" file.txt

(英文:在file.txt中用"b:c"替换"a:b")

这个命令不能正常工作是因为替换文本中含有冒号。 应该如何重新编写该命令?


1
什么不起作用?至少GNU sed 4.2.1(例如在Debian上)可以完全满足您的要求。 - speakr
2个回答

8

如果您想保险起见,可以转义冒号:

sed -re "s/a\:b/b\:c/g" temp.txt


5
这对我有用:

这对我有用:

-->cat 1
a:bLINE1
a:bLINE2

-->cat 1 | sed 's/a:b/b:c/g'
b:cLINE1
b:cLINE2

同样的问题。 - speakr
是的,没错。那不是问题所在。它失败是因为其他原因,我已经找到了。 - user1508893
1
这听起来像是个好问题 - 至少现在我确定冒号不会被sed视为特殊字符! - A B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接