拆分包含多个数据库的 SQL 文件

拆分包含多个数据库的 SQL 文件

我最近收到一个 SQL 转储文件,但其中包含多个数据库。有没有什么工具可以用来轻松地将其拆分为多个 .sql 文件,每个数据库一个?

答案1

假设这是一个.sql带有CREATE SCHEMAorCREATE DATABASE语句的纯文本文件,您可以使用以下命令有效地执行此操作split

$ split -p 'CREATE DATABASE' bigfile.sql splitsql_

这将创建一组新文件,例如splitsql_aasplitsql_ab等,其中每个文件将以找到的CREATE语句开始。

来自split的手册:

NAME
     split -- split a file into pieces
[...]
     -p pattern
             The file is split whenever an input line matches pattern,
             which is interpreted as an extended regular expression.
             The matching line will be the first line of the next
             output file.  This option is incompatible with the -b and
             -l options.

相关内容