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

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

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

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

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

【问题讨论】:

    标签: sql unix replace grep


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2011-11-24
      • 2020-07-29
      • 2019-07-30
      • 2019-10-16
      • 2014-07-05
      • 2013-05-27
      • 2013-01-29
      • 2020-04-12
      • 2020-06-22
      相关资源
      最近更新 更多