大きなファイルから必要な情報を抜き出す
splitって以外と便利なんだなと思った記事です。
そもそも何をしたかったのか
test用のdumpデータが欲しいけど、ひとつのテーブルのinsert文があればよい。なんだけど、受け取ったdumpファイルが全DB, 全talbeのinsert文を含み、かつ巨大です。
mysqladminでdumpすればよいのですが、その権限がない場合はどうしましょうという話です。
で、split
あまり馴染む機会がなかったんですがsplitが便利でした。
% split target.dump.sql
そうするとこんな感じでファイルが生成されます
% ls -al -rw-r--r-- 1 okamura hogehoge 3644029287 10月 18 17:29 target.dump.sql -rw-r--r-- 1 okamura hogehoge 46109604 10月 18 17:31 xaa -rw-r--r-- 1 okamura hogehoge 1044908804 10月 18 17:31 xab -rw-r--r-- 1 okamura hogehoge 1044892824 10月 18 17:32 xac -rw-r--r-- 1 okamura hogehoge 1044892686 10月 18 17:33 xad -rw-r--r-- 1 okamura hogehoge 463225369 10月 18 17:34 xae
この状態だとviで開いても重くないです。
分割しないと重くなるのはviのメモリが足りなくてスワップしてるのかしら。
もっといい方法あるかもしれないですが、とりあえず少ない手間で仕事が進められてうれしい。