Как убрать Windows (DOS) символы перевода строки ^M

^M regexp vi carriage return

Unix использует для перевода строки последовательность символов 0xA . Windows использует комбинацию двух символов: 0xD 0xA.
0xD - это символ перевода строки.  Редактор vi отображает последовательность 0xD в виде ^M
Можно удалить все эти ненужные символы   ^M(^M)  с помощью следующей команды:

`:%s/^V^M//g`

где  ^V^M  это последовательно нажатые клавиши  CTRL+V,CTRL+M , которые иммитируют ввод символа  ^M внутри редактора  vi.

Это выражение заменяет  ^M на пустоту по всему документу (ключ /g - globally)

stackoverflow 

2-ой способ - команда shell TR (translate or delete characters)

tr -d \\r <dosfile> unixfile