我正在寻找以下要求。
输入文件将包含字符串
CREATE INDEX "SCOTT"."IX_EMP" ON "SCOTT"."EMP" ("EMP_ID")
我希望看到输出如下
CREATE INDEX "SCOTT"."IX_EMP" ON "SCOTT"."T_EMP" ("EMP_ID")
所以,我写了如下的声明
$file_name.sql=sed -e "s/"ON SCOTT"."/"ON SCOTT"."T_/ig" $file_name.sql
不幸的是,在我的输出文件中,我想念scott,输出文件包含以下内容
CREATE INDEX IX_EMP ON T_EMP
你能帮助我获得所需的输出值吗?
答案 0 :(得分:2)
您可以尝试此sed
,
sed 's/ON "SCOTT"."EMP/ON "SCOTT"."T_EMP/g'
这里的技巧是单引号转义双引号(有效地将它们转换为普通字符),因此您可以在模式中使用它们。
答案 1 :(得分:0)
以下sed命令应该进行转换。
sed -e 's/ON "SCOTT"."/ON "SCOTT"."T_/'
这假定您要替换ON“SCOTT”的所有实例。“与ON”SCOTT“。”T _
答案 2 :(得分:0)
sed -i ".bak" -e 's/"EMP"/"T_EMP"/' ${file_name.sql}
只有1个“EMP”可以更改(在您的样本中)