データベースごとに分離する
reg="/^CREATE DATABASE .*\`[a-zA-Z0-9_]*\`.*/"
csplit -z -f mysqldump_ -k mysqldump-full.dump "$reg" {*}
- mysqldump00 コメントのみ
- mysqldump01~ 各種データーベース毎のファイル
ファイルにデータベースの名前を設定する。
for file in $(ls -1 mysqldump_* )
do
# mv
fname=mysqldump
mv -v $file "${fname}_$(grep 'USE `' $file | sed -e 's@.*`\(.*\)`;@\1@ig')"
# done
done
テーブルごとに分離する。
for fname in $(ls mysqldump_*)
do
# csplit
csplit -z -f ${fname}_ -k ${fname} "/^CREATE TABLE \`[a-zA-Z0-9_]*\`/" {*}
#done
done
ファイルにテーブルの名前を設定する。
2015-05-18-renew
for file in $(ls -1 mysqldump_*_* );
do
table_name=$(grep "CREATE TABLE" $file | cut -d '`' -f 2);
mv ${file} ${table_name}.sql;
done;
旧
for file in $(ls -1 mysqldump_*_* )
do
# mv
fname=$( echo $file | sed -e "s@\(mysqldump_.*\)_[^_]*@\1@ig" );
mv -v $file "${fname}_$(grep 'CREATE TABLE `' $file | sed -e 's@.*`\(.*\)`.*@\1@ig')" ;
# done
done
CREATE と INSERT を分離
for file in $(ls mysqldump_*_*)
do
# csplit
csplit -z -f ${file}_ -k ${file} "/^LOCK TABLES/" {2}
#done
done