最近、複数のデータベースを含むSQLダンプファイルを受け取りました。これをデータベースごとに1つずつ複数の.sqlファイルに簡単に分割するために使用できるツールはありますか?
答え1
orステートメント.sql
を含むプレーンテキストファイルであると仮定すると、次のように効率的にこれを実行できます。CREATE SCHEMA
CREATE 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.