如何在UNIX中替换双引号中的单词

  • 本文关键字:单词 替换 UNIX bash unix sed
  • 更新时间 :
  • 英文 :


我正在寻找以下要求。

输入文件将包含字符串

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"要更改(在您的样本中)

相关内容

  • 没有找到相关文章

最新更新