19.03.2018 09:32
Снял дамп бд. Получился текстовый файл более 8 Гб.
Затык следующий: перед тем, как развернуть дамп - надо поменять имя БД. Всего две строчки:
create database НОВОЕ_ИМЯ;
и
use НОВОЕ_ИМЯ;
Но визуальные редакторы не могут обработать такой файл!

Скачал sed и выпал в осадок!
Как сформировать правильную строку для sed?
19.03.2018 10:06
не на убогой недоОС, конечно...
Код:
echo 'dfajhlja create database СТАРОЕ_ИМЯ; adfasfasf' | sed -e 's/create database СТАРОЕ_ИМЯ;/create database НОВОЕ_ИМЯ;/'
dfajhlja create database НОВОЕ_ИМЯ; adfasfasf
а вообще, думаю, какой-нибудь HEX-редактор сможет и так...
19.03.2018 10:33
Метод научного тыка, гугл и терпение дали вот такую строчку:
sed "s/ex76/ex76_old/" ex76_for_experiment.sql > ex76_old.sql

Запустил source на получившийся ex76_old.sql
19.03.2018 10:43
Я, вроде, так и написал... Только лучше более точное вхождение искать, а то наменяет там...
19.03.2018 10:52
Ээээ
ex76 - это имя базы?
А если в файле такие строки не только в create/use присутствуют?
Осторожнее надо заменять, желательно с полную строку.
Типа
Код:
sed -e 's/^create database ex76;/create database ex76_old;/'  ex76_for_experiment.sql > ex76_old.sql
А так да, большие файлы правил через hex редактор, кажется frhed.
19.03.2018 11:35
Перед тем как "натравить "sed - проверил, что такая строка используется только как имя БД (в тоталкомандере листер позволяет это сделать)
А по поводу hex-редактора: а разве он умеет "раздвигать" текст? Ведь ex76 - 4 символа, а ex76_old - 8...
19.03.2018 12:13
раздвигать, конечно, не умеет, но про это в первоначальном условии ничего не было...
19.03.2018 12:14
Цитата:
УКМ_эксплуатант_2 А по поводу hex-редактора: а разве он умеет "раздвигать" текст?
Умеет. Cut/Paste есть, например.
19.03.2018 12:59
Цитата:
vdm Умеет. Cut/Paste есть, например.
В тех вариантах, что я видел, они вырезали и вставляли только одинаковое количество символов.
19.03.2018 14:06
Не пробовал, работает ли вставка на файле не влезающем в память, а на мелком - вполне себе меняет его размер.
Ну и (Append пустого места в конец) + (Move блок) есть. Хотя для текста это все конечно не слишком удобно.
Часовой пояс GMT +3, время: 00:58.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.