2013-01-17 42 views
5

替换文本我有这样的命令:的sed - 结肠癌

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

(英语:将 “A:B” 有:在file.txt的 “B C”)

这不因为冒充文本中的冒号而工作。 我应该如何重新编写命令?

+1

什么不起作用?至少GNU sed 4.2.1(例如在Debian上)完全符合你的要求。 – speakr

回答

1

这为我工作:

-->cat 1 
a:bLINE1 
a:bLINE2 

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

[Same here。](http://stackoverflow.com/questions/14389141/sed-replacing-text-with-colon#comment20016526_14389141) – speakr

+0

Yeayh,它的确如此。不是这样。它由于其他原因失败了,我想到了。 – user1508893

+0

这听起来像一个很好的问题 - 至少现在我确信冒号并不是sed中的特殊字符! –

4

在你希望是安全的情况下,你能逃脱:结肠

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