目的
MySQLのダンプファイルから、とあるテーブルのINSERT文だけを取り除きたい。
理由
- 検証環境では利用しないテーブルで、かつそのデータ量(INSERT文)が非常に大きく、インポート時間が長い
- ダンプの出力そのものには手を入れない
方法
sed を使う。Windows環境でもWSLから使える。
具体例
gzipで圧縮されたMySQLダンプ(db-dump.sql.gz)から、3つのテーブルのINSERT文が書かれている行を除去して、再びgzipで圧縮して別名保存。
gzip -cd "db-dump.sql.gz" | sed -r '/INSERT INTO `(STOCK_C|STOCK_SET|FEE_PATTERN)`/d' | gzip > "./db-dump-sed.sql.gz"