Großen MySQL Dump mit grep und sed in kleinere Teile aufteilen
In dem vorliegenden Fall habe ich einen SQL Dump über die komplette Datenbank. Diesen kann ich aber aus den verschiedensten Gründen nicht einfach so einspielen wie er ist. Daher teile ich diesen großen Dump einfach in mehrere einzelne Dumps auf.
Auf der Linux oder Mac OS Konsole benutzen wir die Kommandozeilen Tools grep und sed.
Mit
grep -n 'Table structure' grosser_dump.sql
lasse ich mir die Zeilen angeben, in denen die Daten für die entsprechende Tabelle beginnen.
1826:-- Table structure for table users 1849:-- Table structure for table orders 2056:-- Table structure for table sales 2081:-- Table structure for table stats
Um jetzt nur die Tabelle Orders als SQL Dump zu sichern führe ich den Befehl
sed -n '1849,2056 p' grosser_dump.sql > orders.sql
aus. Die 1849 ist die erste Zeile des Bereichs, den ich kurz vorher ermittelt habe. Die zweite Zahl 2056 ist die Zahl des nächsten Bereichs. Jetzt habe ich in der orders.sql die Definition der orders Tabelle.