Sed操作文本

Sed操作文本,sed,Sed,我是编程新手。我正在尝试使用sed删除文本文件中的*字符,但无效,并继续得到以下结果: sed:-e表达式#1,字符1:未知命令:`*' 请帮助?谢谢问题是“*”是一个特殊的shell字符,将在sed命令之前处理。要解决此问题,请在“*”之前使用转义字符“\”,以便shell将其忽略,并将其作为sed命令的一部分进行处理: sed 's/\*//g' fileName 还可以按字符类[]对shell元字符进行转义 在sed中 呃……代码是有效的,但解释是错误的。在单引号内,shell不展开*。

我是编程新手。我正在尝试使用
sed
删除文本文件中的
*
字符,但无效,并继续得到以下结果:

sed:-e表达式#1,字符1:未知命令:`*'


请帮助?谢谢

问题是“*”是一个特殊的shell字符,将在sed命令之前处理。要解决此问题,请在“*”之前使用转义字符“\”,以便shell将其忽略,并将其作为sed命令的一部分进行处理:

sed 's/\*//g' fileName

还可以按字符类[]对shell元字符进行转义 在sed中


呃……代码是有效的,但解释是错误的。在单引号内,shell不展开
*
。问题是
*
对sed有特殊意义(例如,Kleene星--
a*
将匹配任意数量的
a
s),如果您希望sed将其视为文字星号,则需要将其转义。@Wintermute您完全正确。谢谢你的澄清。伙计们,代码对我来说不起作用。我使用grep'*'文件名和*stil exist重新检查了文本文件。帮助?好了,伙计们,问题解决了,哈哈!我忘了按如下方式为它创建一个新文件:sed's/*//g'fileName>newfilename.txt
sed 's/[*]//g' filename