我正在寻找以下要求。
输入文件将包含字符串
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
你能帮我获得所需的输出值吗?
你可以
试试这个sed
,
sed 's/ON "SCOTT"."EMP/ON "SCOTT"."T_EMP/g'
这里的诀窍是单引号转义双引号(有效地将它们转换为普通字符),因此您可以在模式中使用它们。
以下 sed 命令应执行转换。
sed -e 's/ON "SCOTT"."/ON "SCOTT"."T_/'
这假设您要将 ON "SCOTT"." 的所有实例替换为 ON "SCOTT"。T_
sed -i ".bak" -e 's/"EMP"/"T_EMP"/' ${file_name.sql}
tehre 只有 1 个"EMP"要更改(在您的样本中)