【问题标题】:Replace string in big sql file (15 go) bash替换大 sql 文件中的字符串 (15 go) bash
【发布时间】:2021-03-19 23:51:12
【问题描述】:

我必须在转储文件中替换这个字符串:

use clients_db; 

通过

use client;

环境src和dest的数据库名称不同。

我尝试使用 sed,但它不起作用,因为文件太大。

提前谢谢你

【问题讨论】:

  • 你得到什么错误信息?
  • 如果您没有足够的可用驱动器空间让它与 sed 一起使用,我敢打赌,如果没有一些重大障碍,它将无法与任何东西一起使用。
  • 更改后你会怎么做?您是否将数据导入数据库?如果是,请显示导入文件的命令。
  • 空间不足。是的,我尝试将de数据导入数据库
  • 命令是:docker exec -i database mysql -uuser -ppass clients

标签: mysql bash docker shell in-place


【解决方案1】:

这应该可以在不编辑文件的情况下完成这项工作:

sed 's/^use clients_db;/use client;/' clients_db_dump.sql | docker exec -i database mysql -uuser -ppass clients

我假设use clients_db;之前没有空格。

【讨论】:

  • 有效!!谢谢 !当我们这样做时,sed 不会创建 tmp 文件?
  • sed 在这种情况下不会创建临时文件。
猜你喜欢
  • 1970-01-01
  • 2015-07-07
  • 1970-01-01
  • 2019-05-19
  • 2012-04-21
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
  • 2019-03-28
相关资源
最近更新 更多