LINUX.ORG.RU

[Perl]Что за символ ^M и как его убрать?

 


0

0

Есть скрипт на перле - задача скрипта заменить пустые строки и добавить теги в начале и в конце строки. С файлом созданным в Linux все работает прекрасно, а вот оффтопиковым .txt есть проблема - в конце строки (перед прикрепленным скриптом закрывающим тэгом) есть этот символ и он переводит на новую строку, мелочь, а неприятно.

если сделать ./script.pl | less то символ будет виден как ^M, сhomp его не удаляет.

Вопрос - что это за символ и как его удалить?

P.S. s/\^M//g не помогает.

это не просто символ, а символ того что в никсах и офтопике по разному заканчиваюца строки. лечится открытием в kwrite и сохранением в нужном формате. еще вроде ident умеет такой финт проделывать в пакетном режиме.

smalcom
()

Это символ перехода строки в вин/дос(он лишний для юникс). воспользуйся dos2unix

anonymous
()
Ответ на: комментарий от Sylvia
   Oct   Dec   Hex   Char                        Oct   Dec   Hex   Char
   015   13    0D    CR  '\r' (carriage ret)     115   77    4D    M
Sylvia ★★★★★
()
Ответ на: комментарий от desruptor

todos
fromdos

первое конвертит LF (unix) в CRLF (dos)
второе - CRLF в LF

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

> как бы перл и все такое

а что, в перле уже не рекомендуется пользоваться регекспами?

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

> сhomp его не удаляет.

Не читал, но осуждаю (с)

desruptor
() автор топика
Ответ на: комментарий от anonymous2

зато юниксвейно, пусть автор темы выбирает то , что будет удобно)

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

dos2unix вам в помощь.


а если в текстовом файле часть в CR, часть в CR-LF, а часть в LF
(ну поредактировали то там то сям.)
то в результате фигня получится
так ли ?

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

Не-а. После dos2unix будет один LF.

часть в CR


MacOS, что ли? :)

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

> то в результате фигня получится

так ли ?


Вроде все пучком получится, но кто вам мешает проверить или посмотреть сорцы утилиты?

andreyu ★★★★★
()

Ужас что тут насоветовали :)
Все гораздо проще если ты пользователь VIM'a.
Для того чтобы прыгать туда-сюда (unix-dos)
Открой нужный файл в VIM и набери

set fileformat=нужный_формат (dos/unix)

/profit

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

> Открой нужный файл в VIM и набери

set fileformat=нужный_формат (dos/unix)

/profit



Профита тут нет. Это просто переключит режим отображения конца строки. Человека интересовало, как конвертировать файл.

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

> > Это просто переключит режим отображения конца строки.

Садись, два.


Век живи - век учись. Может это и произведет конвертацию файла, проверять мне некогда. Только сделать конвертацию пачки файлов удобнее при помощи find и dos2unix.

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