Извлечение вставки sql с помощью sed, line cut - PullRequest
5 голосов
/ 01 марта 2012

Я читал в stackoverflow об использовании sed для извлечения данных из дампов sql, чтобы быть более точным, конечная цель - извлечь вставки для определенной таблицы, чтобы восстановить только эту таблицу.

Я использую это:

sed -n '/LOCK TABLES `TABLE_NAME`/,/UNLOCK TABLES/p' dump.sql > output.sql

Проблема, с которой я столкнулся, заключается в том, что у нас есть вставки в 1 строку длиной более 50 МБ, поэтому при извлечении вставки вывод обрезается до конца строки. как:

......
(4
3458,'0Y25565137SEOEJ','001','PREPAR',1330525937741,
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
(43459,'666

Я пытался использовать awk и даже простой grep, и результат тот же, линия обрезается.

Edit: я использую это на дампе sql из MySQL, и система, над которой я работаю, это Centos 5.2

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Вы можете попробовать awk и посмотреть, будет ли лучше (я так думаю):

awk '/LOCK TABLES `TABLE_NAME`/,/UNLOCK TABLES/' dump.sql > output.sql
0 голосов
/ 02 марта 2012

Но если это файл дампа, созданный с помощью exp, вы можете импортировать только необходимые таблицы с

imp user/pass tables=table1,table2 ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...