Каким образом из файла сохраненного в виндосе удалить символ конца строки, т.е. при открытии отображается примерно так^M
-- -----^M
^M
>Каким образом из файла сохраненного в виндосе удалить символ конца строки, т.е.
>при открытии отображается примерно так
>
>^M
>-- -----^M
>^MЕсть утилита dos2unix - самый простой вариант. Можно при помощи sed (например, так: sed 's/^M//' ...), либо при помощи tr.
>Каким образом из файла сохраненного в виндосе удалить символ конца строки, т.е.
>при открытии отображается примерно так
>^Mdos2unix, unix2dos
sed 's/^M//' не подходит, символы не удаляются.
Помню, что видел как-то команду для удаления через консоль.
Программа это конечно хорошо, но может кто что ище интересного подскажет.
легко
1. tr, sed
2. любой язык программирования, наиболее логичным будет perl ибо в одну строку
3. vim - открываем файл, :set ff=unix(или mac или dos), сохраняем.
4. различные гуевые редакторы и утилиты.
Пришло в голову еще одно извращение запихиваем файл в svn, ставим ему аттрибут eol=native, забираем из svn.
вообще говоря извратов еще очень много можно придумать. На практике использую либо однострочник на perl/sed либо vim
Никаких извращенийcol bx < old > new
old - старый файл
new - без ^M
Правильно будет так:cat /tmp/qqq1.txt | col -bx > qqq1_1.txt
>Правильно будет так:
>
>cat /tmp/qqq1.txt | col -bx > qqq1_1.txtэто как раз неправильно :)
>>Правильно будет так:
>>
>>cat /tmp/qqq1.txt | col -bx > qqq1_1.txt
>
>это как раз неправильно :)да, это неправильно, ознакомьтесь с работой col.
Мне несложно использовать временный файл:
col bx < old > new; mv new old
> Каким образом из файла сохраненного в виндосе удалить символ конца строки, т.е.
> при открытии отображается примерно так
> ^M
> -- -----^M
> ^Mпопробуй вот так:
sed 's/.$//' исходный_файл > полученный_файл