Задать вопрос
Dj_PiTeR_FM
@Dj_PiTeR_FM

Как удалить символ "^M" из mysql?

Делаю выгрузку клиентов на Perl из mysql в файлик под Linux.
Открываю файл, в нем где попало вылезает "^M".
Просто удалить эти символы, типа col -bx < dosfile > newfile не кошерно — информация перешла на другую строку, а нужно сохранить структуру. Можно ручками конечно, но это не спортивно.
Необходимо как-то пофиксить эти символы в самой БД. Кто нибудь спотыкался об такое уже?
  • Вопрос задан
  • 4419 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
«информация перешла на другую строку, а нужно сохранить структуру»
У вас дело такое:
^М это (скорее всего) \r (Carriage return), это знак нового рядка, всего есть 3 знака нового рядка: \r (Mac), \r\n (Win), \n (*nix).
Если реально не нравится \r, используйте:
dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_replace
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@asterisk
perl -p -i -e 's/^M//g' dosfile
только тут хитрость для ввода символа ^M необходимо нажать клавишу Ctrl и удерживая ее нажать v и m, должен получится символ ^M
Ответ написан
Dj_PiTeR_FM
@Dj_PiTeR_FM Автор вопроса
Это с чего минусанули? Не понял?
Ответ написан
Комментировать
eaa
@eaa
А Вы замените все \r на пробел — вот вам и будет в одну строку.
Ответ написан
Комментировать
ergil
@ergil
вызовите из перла dos2unix ;)
есть такой пакет во всех дистрибах, как раз для убирания неправильного перевода строки, обычно показываемого как ^M
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы