如何從mysql的備份sql文本里按CREATE?
這個解析不好弄,其實可以換一種思路,把所有的表名全查出來,然后在按表名生成導出腳本,生成的文件就一個表一個了。
shell樣例如下,僅供參考,請在自己測試環境下測試。腳本可以包裝在一個大的shell里面一起執行。
一、生成所有的表名
mysql<<EOF
use cpai;
show tables;
quit
EOF
輸入結果保持到tmp.txt
二、生成導出單個表數據的腳本
awk 'NR>1' tmp.txt >tables.txt #從第二行開始取
cat tables.txt |awk '{printf "mysqldump 數據庫名 %s >%s.sql\n",$1,$1}' >mysql_dump_sig.sh
三、執行mysql_dump_sig.sh腳本,既可以導出一個個表到單獨的每個文件里面。