LINUX.ORG.RU

Чем редактировать большой файл?


0

0

Коллеги,

Проблема: Есть большой файл (порядка 500 мегов). По сути это SQL дамп базы данных. Необходимо просто открыть его и поменять в заголовке парочку слов(кодировку). Все хорошо, но любимый vim почему-то не хочет открывать такой большой файл? Тупит по долгу, а когда все-таки откроет тормозит безбожно...

Подскажите, пожалуйста, чем можно редактировать большие текстовые файлы?

anonymous

емаксом попробуй =) я 300-метровый дамп емаксом открывал.

Komintern ★★★★★
()

dd if=somefile.sql of=head.sql bs=1M count=сколько-надо dd if=somefile.sql of=tail.sql bs=1M skip=сколько-надо vim head.sql cat head.sql tail.sql > somefile.sql

З.Ы. может открыть его в vi? (именно в vi а не в vim)

Nao ★★★★★
()
Ответ на: комментарий от sdio

sed'ом получилось. Спасибо!

Использовал команду: sed -i '1,15s/SET NAMES utf8/SET NAMES cp1251/' dump.bk

но вот в чем вопрос: хотя и указал что меня интересуют как максимум первые 15 строчек - все равно sed прочитал весь файл (ощутимо по времени). Что было не верно?

Заранее благодарю!

anonymous
()

Поменять пару слов? Присоединяюсь к sdio - sed.

Laz ★★★★★
()
Ответ на: комментарий от anonymous

sed -- stream editor.

Он редактирует в потоке, т.е. читает файл по кускам, изменяет и записывает заново. Поскольку совпадение может быть в любом месте файла, то и прочитать его надо весь.

Редактирование в потоке -- та вещь, которую в вантузе недооценивают: зачем-то ищут редакторы, способные сожрать весь файл сразу, когда в потоке можно редактировать файлы неограниченной длины.

annoynimous ★★★★★
()
Ответ на: комментарий от anonymous

есть команда q
можно было бы дать команду 16q
но я не уверен что будет результатом, возможно от файла останутся только первые 15 строк :-)
надо проверить

sdio ★★★★★
()

Написать скрипт на перле, который читает 15 строчек и обрабатывает их нужным регэкспом.

Xellos ★★★★★
()
Ответ на: комментарий от anonymous

> Что было не верно?

Думаю, неверно было ожидать, что можно заменить 4 символа на 6 символов ('utf8' -> 'cp1251') где-то в начале файла, не двигая хвост файла. :)

alexsaa
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.