Linux sed因错误而失败

Linux sed因错误而失败,linux,sed,Linux,Sed,我试图用sed替换当前目录中所有文件中的下一个字符串:(包括撇号) '控制报告\u页面C\u表格\u标题\u日期' 使用字符串: timeofday()::varchar(250) 我试图用命令转义特殊字符“(): sed -i '\''Control_Reports_Pg.C_Table_Title_Date\''/timeofday\(\)::varchar\(250\)/g' * 我得到的错误:sed:-e表达式#1,char 22:unknown命令:' 我在网上读到,我不需要逃避下划

我试图用sed替换当前目录中所有文件中的下一个字符串:(包括撇号) '控制报告\u页面C\u表格\u标题\u日期'

使用字符串: timeofday()::varchar(250)

我试图用命令转义特殊字符“():

sed -i '\''Control_Reports_Pg.C_Table_Title_Date\''/timeofday\(\)::varchar\(250\)/g' *
我得到的错误:
sed:-e表达式#1,char 22:unknown命令:
'

我在网上读到,我不需要逃避下划线,那么我能做什么呢?当我尝试用\转义下划线时,我还收到一个错误:

sed -i 'Pg.C\_Table\_Title_Date\''/timeofday\(\)::varchar\(250\)/g' *
sed: -e expression #1, char 24: unknown command: `\'
谢谢..

试试这个:

sed -i.bak "s/'Control_Reports_Pg.C_Table_Title_Date'/timeofday()::varchar(250)/g" *

创建备份文件不会有任何伤害;}

s/
在哪里?Replace命令的语法是
s//
,正如前面指出的,您缺少该命令;您不必在替换字符串中转义
()
;您应该在模式中转义
;如果在命令中使用
”,则不必特别处理
。我运行:sed-I.bak“s/current\u设置('Control\u Reports\u Pg.C\u Table\u Title\u D ate')/timeofday()/g*,但我得到一个错误-sed:-e expression\1,char 53:unterminated's命令(我稍微更改了原始字符串)