Linux
按字元串的位置拆分大型 sql 文件或從上次失敗開始 sql
我有一個 15GB 的 sql 文件,它是數據庫的備份。我遇到的問題是,它進行到一半,它失敗了。幸運的是,我知道從哪張桌子上拿。
有沒有一種方法可以通過我需要從中提取的表的起點來拆分這個 SQL 文件,或者讓 mysql 自己來做這件事?
謝謝
您可以使用
sed
範圍分割文件sed -n '/Start Text/,/End Text/p' >part.sql
這將在
/Start Text/
找到時開始列印,並將繼續列印直到/End Text/
或到達文件末尾。確保Start Text
對於起點是唯一的並且End Text
不在文件中。
您可以使用
split
命令(查看行數選項),也可以使用dd
字節偏移量(使用 找到grep -b
)從轉儲文件中提取。這是一篇涵蓋該過程的部落格文章(這是我在網站其他地方給出的答案,並決定將解決方案寫在部落格上)。