Простейшая конвертация mysql-дампа в текстовый файл с разделителями полей.

Попросили меня сконвертировать данные  из дампа mysql-базы в текстовый файл с разделителем #.

1. распаковываем файл unrar xFile.rar

2. Вгружаем дамп в базу mysql (создается самим дампом): mysql -u USER -pPASSWORD < FILE.sql

3. На перле пишем простенький скрипт:

#!/usr/bin/perl

use DBI;

use DBI;
my $tab=»#»;
my $dsn = ‘DBI:mysql:DATABASENAME:localhost’;
my $db_user_name = ‘USER’;
my $db_password = ‘PASSWORD’;
my ($id, $password);
my $dbh = DBI->connect($dsn, $db_user_name, $db_password) || die «$!\n»;
$dbh->do(«SET NAMES ‘utf8′»);  // база у нас в UTF-8
$sth = $dbh->prepare(«SELECT * FROM updated»);
$rv = $sth->execute;
while (@row = $sth->fetchrow_array) {
for($i=0;$i<scalar(@row);$i++) {
$val=$row[$i];
$val=~ s/\#/№/g; // заменяем знак # на №, т.к. у нас разделитель #.
print $val.$tab;
}
print «\n»;
}

4. Запускаем скрипт: perl script.pl > bbb.txt

5. Конвертируем в windows-1251: iconv -f utf-8 -t windows-1251 -c bbb.txt > bbb.win.txt

Ну вот и все. 🙂

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

CAPTCHA image
*