2017-12-05 9 views
0

からのすべての完全なCREATE TABLE文を取得する方法:ように私がこれまでに得たmysqlのダンプ

$ bzcat mysqldump.pplware.sql.bz2 | grep -A 10 "^CREATE TABLE.*" 
CREATE TABLE `wp_ak_twitter` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `tw_id` varchar(255) NOT NULL, 
    `tw_text` varchar(255) NOT NULL, 
    `tw_reply_username` varchar(255) DEFAULT NULL, 
    `tw_reply_tweet` varchar(255) DEFAULT NULL, 
    `tw_created_at` datetime NOT NULL, 
    `modified` datetime NOT NULL, 
    PRIMARY KEY (`id`), 
    KEY `tw_id` (`tw_id`) 
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; 
-- 
CREATE TABLE `wp_audit_trail` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `operation` varchar(40) NOT NULL DEFAULT '', 
    `user_id` int(11) NOT NULL, 
    `ip` int(11) unsigned NOT NULL DEFAULT '0', 
    `happened_at` datetime NOT NULL, 
    `item_id` int(11) DEFAULT NULL, 
    `data` longtext, 
    `title` varchar(100) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=9442523 DEFAULT CHARSET=latin1; 

..andを。 しかし、10行の制限は任意で、いくつかのCREATE TABLESは短く、いくつかは長くなります。すべてのCREATE TABLE定義をどのように取得できますか? CREATE TABLE;セミコロン:パターン間の線を印刷について

+1

可能性のある重複した[2つのパターンの行を選択するには?](https://stackoverflow.com/questions/38972736/how- 2パターン間の選択ライン) – Sundeep

答えて

1

方法 -

bzcat mysqldump.pplware.sql.bz2 | awk '/CREATE TABLE/{f=1}/\;/{f=0}f||/\;/' 

OR

bzcat mysqldump.pplware.sql.bz2 | awk '/CREATE TABLE/,/\;/' 
0

どのようにだけデータなしで、定義を得ることについて:

mysqldump ... --no-data ... 

(もちろん、これは質問に答えません尋ねたが、それいくつかのケースで簡単なソリューションを提供することができるよう。)の

関連する問題