Текстовый файл с ^ M в каждой строке - PullRequest
7 голосов
/ 16 июля 2010

Я только что получил файл исходного кода от друга. Файл был создан в UNIX. Когда я открыл его в Windows с помощью NotePad ++, в каждой строке была одна лишняя пустая строка.

Озадаченный, я скачал Vim и использовал его, чтобы открыть файл. Затем я увидел группу ^ M в конце каждой строки.

Что это за ^ M? Как вы предотвращаете его вставку?

Ответы [ 3 ]

12 голосов
/ 16 июля 2010

Это конец строки в стиле DOS / Windows (чтобы быть педантичным, это то, что они обычно называют сейчас, но большинство ранних не UNIX-ОС, таких как CP / M и OS / 2, также имели их). На разных Unix окончание строк: \n. В DOS / Windows окончания строк: \r\n (CR + LF или возврат каретки и перевод строки). \r - это то, что отображается как ^M. Чтобы удалить их в VIM, я делаю:

:%s/^M//

Вы можете получить ^ M, выполнив CTRL + V , а затем CTRL + M

Если вы работаете в системе UNIX, вы можете использовать dos2unix.

2 голосов
/ 16 июля 2010

это артефакт окон. У вас есть 2 варианта

  1. Используйте редактор, где вы можете указать формат сохранения
  2. Используйте dos2unix в Unix-подобных системах для конвертации
0 голосов
/ 16 июля 2010

Это возврат каретки. Редакторы DOS / Windows, как правило, используют возврат каретки и перевод строки, редакторы Unix любят использовать только перевод строки. Некоторые редакторы, такие как geany и textpad, могут обнаружить его и не показывают ^ M, а некоторые позволят вам сохранить, где варианты включают стиль Unix или CRLF. Существует также проблема наличия EOF в конце файла, который требовался некоторым компиляторам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...