Спонсор месяца: Фотограф в Алматы

Возникла задача разделить большой файл дампа базы данных mysql потаблично. Самое простое и очевидное решение — взять и вырезать в редакторе — из-за большого размера файла реализовать не удалось. Писать программу для разбора файла было лениво, поэтому пошёл другим путём и решил использовать для этой цели awk. awk — утилита, использующая C-подобный язык, для построчного разбора и обработки входного потока (как правило, текстового файла) по заданным шаблонам.

После просмотра файла дампа БД определил, что каждая новая таблица начинается со строки ‘DROP TABLE’. Исходя из этого составил следующую однострочную команду:

awk '/^DROP TABLE/{f="dump_"++d".sql"} f{print > f}' dump.sql

После выполнения команды получаем результат в виде кучи файлов dump_N.sql, что, собственно, и требовалось получить.

Оставить комментарий