Linux如何使用sed替换星号

Linux如何使用sed替换星号,sed,replace,Sed,Replace,我有一个文件中的模式为*********,希望替换为***。我使用了sed-I's/*********/***/I'filename.txt,但在使用sed-e-expression时出错,char:Invalid preference regular expression我尝试了像sed-I's/******/\*/I'filename.txt一样转义*,但没有任何帮助。有什么建议吗?试试这个: $ echo "*********" | sed -E 's/\*{9}/\*\*/' ** 如

我有一个文件中的模式为
*********
,希望替换为
***
。我使用了
sed-I's/*********/***/I'filename.txt,但在使用
sed-e-expression时出错,char:Invalid preference regular expression
我尝试了像
sed-I's/******/\*/I'filename.txt一样转义
*
,但没有任何帮助。有什么建议吗?

试试这个:

$ echo "*********" | sed -E 's/\*{9}/\*\*/'
**
如果没有有效的输入文件,我们可以建议:

$ echo "*********" | sed 's/\*\{9\}/**/'
**

如果需要将输出存储在同一个文件中,请在sed中使用
-i
选项。

第二行的
**
是什么?另外,我想搜索模式
*********
,而不是
***
。文件有另一个模式,我不想碰它。@uen187是的,我可以<代码>**
第二行是前一行的输出。大多数情况下,命令行以
$
@uen187开头。请您提供一个有效的输入文件。@uen187尝试使用基本正则表达式:
sed-i的/\*\{9\}/**/'文件