为什么不sed工作?

我有一个文件,有很多的单行! 字符。 我想删除所有的! 字符。

我试过这个:

 sed s/!// myfile 

和这个:

 sed 's/!//' myfile 

和这个:

 sed 's/"\!*"//' myfile 

但他们都打印出所有的“!”。

我必须失去一些明显的东西。 有任何想法吗?

g添加到您的正则expression式中,以便进行全局replace。 否则,只有第一次出现将被replace:

 sed s/\!//g myfile 

尝试这个:

 $ sed s/\!//g myfile 

不要忘记可怜的老tr

 tr -d '!' < filename 

tr只能在stdin上运行,所以你必须将数据input到它。

最后加上g来代替所有的发生。

sed's /“!*”// g'myfile

你必须指定你想要删除每个事件: sed 's/!//g' myfile
注意g ,意思是“贪婪”。
没有'g',你只有第一个'!' 去除