我最近收到一个 SQL 转储文件,但其中包含多个数据库。有没有什么工具可以用来轻松地将其拆分为多个 .sql 文件,每个数据库一个?
答案1
假设这是一个.sql
带有CREATE SCHEMA
orCREATE DATABASE
语句的纯文本文件,您可以使用以下命令有效地执行此操作split
:
$ split -p 'CREATE DATABASE' bigfile.sql splitsql_
这将创建一组新文件,例如splitsql_aa
、splitsql_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.