Не удается получить доступ к таблицам из поврежденного файла дампа MySQL

0
grep -n "Table Structure" dumpfile.sql 

возвращается

XXXXXX:-- Table structure for table 'table_name_1'
XXXXXX:-- Table structure for table 'table_name_2'
XXXXXX:-- Table structure for table 'table_name_3'

Но после этого момента он ломается. Не знаете почему?

И также для получения одной таблицы из огромного файла дампа (около 489 ГБ) я использовал:

sed -n -e '/Table Structure 'table_name'/p' dump_file_name.sql > extracted_file.sql

Но он не может найти table_name.

Итак, мой вопрос здесь. Как можно получить доступ ко всем таблицам? Или почему это после определенной таблицы, он не может найти таблицу.

Пожалуйста, если кто-нибудь может мне помочь. Это будет величайший поступок!

  • 0
    Что вы подразумеваете под "это ломает"? Если файл дампа поврежден, возможно, эти строки не существуют.
  • 0
    Данные внутри файла слишком велики. команда прекращает выполнение дальше.
Показать ещё 1 комментарий
Теги:
grep
sed

1 ответ

0

У вас две проблемы с командой sed.

Во-первых, вы используете одиночные кавычки внутри строки, которая ограничена одинарными кавычками. Это не сработает, потому что внутренние кавычки просто закончат строку оболочки, а не будут включены буквально.

Во-вторых, кавычки в файле дампа являются обратными, а не одинарными кавычками.

Кроме того, вам не хватает for table в шаблоне, а s в structure должны быть в нижнем регистре.

sed -n -e '/Table structure for table 'table_name'/p' dump_file_name.sql > extracted_file.sql

Но вы можете просто использовать grep для этого, вам не нужно sed:

grep 'Table structure for table 'table_name'' dump_file_name.sql > extracted_file.sql
  • 0
    В этом случае он по-прежнему находит всю таблицу, в которой есть структура таблицы, а не то, что требуется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню