Как заменить одно слово во всей базе?

viewsonic

Guest
Как заменить одно слово во всей базе?

У меня есть база. В ней надо заменить одно слово например "kozel" на "udod" во всей базе во всех таблицах. Как бы мне это сделать?
Пришло на ум.
1. Писать php-код на поиск и замену во всей базе.
2. Найти какую-нибудь прогу для винды, которая позволяет делать поиск-замену в текстовых файлах, скачать всю базу, сделать замену. Но тут я боюсь как бы кодировка не полетела.
Что делать? Может как-нибудь с помощь средств самого мускула это можно организовать?
Спасибо!
 

voituk

прозревший
Сделай дапм базы, проведи по нему полнотекстовую замену и залей назад.
 

viewsonic

Guest
voituk, какой прогой-то это сделать? MS Word, Homesite - все корячат русскую кодировку в базе. :(
 

viewsonic

Guest
voituk, я года начал писать первое сообщение, попытался открыть дамп в notepad.exe
До сих пор открывает... сколько это времени? 35 минут. :) Уже появились сомнения, откроет ли? И если откроет, то можно ли будет сделать замену?
Файл 70 Мб.
 

voituk

прозревший
viewsonic
Млин!
Ну замени sed - ом.
Точно не уверен, но долно быть что-то а-ля:
Код:
cat dump.sql | sed 's/kozel/urod/'
 

viewsonic

Guest
Файл открылся, поставил делать замену. Делает уже почти два часа. :)
 

Frol

Новичок
voituk
не мешай человеку работать.
ему, как видишь, все нравится.
 

white phoenix

Новичок
[m]fopen[/m] + [m]fgets[/m] + [m]fseek[/m] + [m]fwrite[/m]. Загружать в память весь файл не нужно.
 

viewsonic

Guest
Блииин, sed этот чего-то работать не хочет! >-[
Задаю четкую строку (взято тупо из документации):
sed.exe `s/kozel/urod/g' file.sql>file_new.sql

Пишет:
sed.exe: -e expression #1, char 1: Unknown command: ``

:(((((((((((((
 

viewsonic

Guest
ЕСТЬ! СРАБОТАЛО! Блин, 1.2 секунды и все готово в семидесятимегабайтном файле! :)
voituk, спасибо!

-~{}~ 24.01.06 19:46:

Финальный код выглядит вот так:

PHP:
sed.exe s/kozel/urod/g file.sql>file_new.sql
Флаг 'g' делает ВСЕ замены в файле, а без этого ключа будет произведена только первая найденная.
 

viewsonic

Guest
Frol, только сейчас заметил твой дурацкий коммент. Мог бы и не говорить ничего, раз сказать нечего.
 
Сверху