Teile eines MySQL-Dumps extrahieren
Es kommt immer mal wieder vor, dass ich bestimmte Tabellen aus einem MySQL-Dump extrahieren muss, um sie z.B. neu einzuspielen. Bei kleinen Datenbanken ist es kein Problem, die entsprechende Tabelle per Hand zu suchen. Wenn der Dump jedoch 1GB groß ist, geht ein Editor schon schnell mal in die Knie.
Die Lösung ist einfach: Mittels sed kann mal leicht Teile einer Textdatei extrahieren:
sed -n '/^INSERT INTO `start_tabelle`/,/^CREATE TABLE `end_tabelle`/p' dump.sql > extracted.sql
Hier werden die INSERT-Statements der Tabelle start_tabelle extrahiert und zwar bis zum Beginn von end_tabelle. Bei dieser handelt es sich um den nächsten Eintrag im Dump. Das Beispiel zeigt bereits die grundlegenden Ansätze, denke ich.
Will man nur die Inserts einer Tabelle extrahieren genügt folgender Ausdruck:
sed -n '/INSERT INTO `start_tabelle`/p' dump.sql > extracted.sql
Viel Spaß beim Probieren!
- 1 Kommentare
Danke
Sehr nützlich!