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
.
Итак, мой вопрос здесь. Как можно получить доступ ко всем таблицам? Или почему это после определенной таблицы, он не может найти таблицу.
Пожалуйста, если кто-нибудь может мне помочь. Это будет величайший поступок!
У вас две проблемы с командой 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