在 .sql 文件中查找和替换文本

Posted

技术标签:

【中文标题】在 .sql 文件中查找和替换文本【英文标题】:Find and Replace text in .sql files 【发布时间】:2013-05-26 19:22:44 【问题描述】:

我在子文件夹中有很多 .sql 文件。我目前正在手动打开它们,搜索OLDSERVERNAME,并将其替换为NEWSERVERNAME(我正在迁移)。必须有更快的方法来做到这一点。我尝试使用 FART,但我想我做得不对。

这是我尝试过的(在主文件夹中):

fart -i -p -c *.sql OLDSERVERNAME NEWSERVERNAME

我可以为此目的使用 unix 实用程序吗?

【问题讨论】:

【参考方案1】:

您可以为此使用sedsed 代表Stream Ed itor

sed -i 's/OLDSERVERNAME/NEWSERVERNAME/g' *.sql
-i 选项将进行文件内替换。 g 表示全局替换。因此,如果一行中有多个 OLDSERVERNAME 实例,它们将被替换为 NEWSERVERNAME *.sql 将传递所有以.sql 扩展名结尾的文件。

查看sed 手册页了解更多详情。

【讨论】:

是否需要安装一些东西才能使用 SED?我得到一个“'sed' 不是内部或外部命令、可运行程序或批处理文件。'错误。谢谢。 我已经尝试安装它,还将 sed.exe 和 .dll 文件的位置添加到 Path 环境变量中,但我仍然得到同样的错误。 SED 可以在 64 位机器上运行吗?【参考方案2】:

在 MacOS 上 - 我必须添加备份文件扩展名

sed -i '.bak''s/OLDSERVERNAME/NEWSERVERNAME/g' *.sql

【讨论】:

以上是关于在 .sql 文件中查找和替换文本的主要内容,如果未能解决你的问题,请参考以下文章

在所有文件 rstudio 中查找和替换文本

如何批量执行sql查找替换?

在文件中查找和替换文本

t-sql 用户定义函数,用表中的查找替换文本

在所有子目录中的文件中查找和替换文本[重复]

Perl:在多个文本文件中查找和替换特定字符串