我有一个文件,其中一行有很多!
字符。我想删除所有!
字符。
我尝试过这个:
sed s/!// myfile
和这个:
sed 's/!//' myfile
和这个:
sed 's/"\!*"//' myfile
但它们都只是打印出所有的“!”。
我肯定忽略了一些显而易见的东西。有什么想法吗?
答案1
将 添加g
到正则表达式中,以进行全局替换。否则,只会替换第一次出现的匹配项:
sed s/\!//g myfile
答案2
尝试这个:
$ sed s/\!//g myfile
答案3
不要忘记可怜的老tr
tr -d '!' < filename
tr 仅对 stdin 进行操作,因此您必须将数据通过管道传输到其中。
答案4
您必须指定要删除的每个出现项:sed 's/!//g' myfile
注意g
,表示“贪婪”。
如果没有“g”,则只会删除第一个“!”