У меня есть большой файл mysqldump gzipped, который содержит некоторые определения таблиц, а затем много операторов вставки. Я хотел бы изменить определения таблицы, но оставить операторы вставки в покое. Размер файла при сжатии составляет около 500 ГБ, поэтому я хотел бы не разархивировать его, просто чтобы отредактировать. Чтобы пропустить заголовок я мог сделать

zcat bigfile.gz | tail -n+50

И просто добавить заголовок в другой файл GZIP я могу сделать

zcat header.gz bigfile.gz

Но есть ли способ объединить эти два утверждения?

2 ответа2

2

Вы можете использовать процесс подстановки, который более идиоматичен и менее громоздок, чем именованный канал.

cat header.sql <(zcat bigfile.gz | tail -n+50)
0

Я решил использовать именованный канал для решения этой проблемы и три оболочки (через tmux):

Первый,

mkfifo pipe

Запустить оболочку 1:

cat header.sql > pipe

Затем запустите оболочку 2:

zcat bigfile.gz | tail -n+50 > pipe

Затем запустите оболочку 3

cat pipe | mysql -uroot -pxyz database_name

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .