How to find out line-endings in a text file?

Выяснилось, что в моем pom.xml я использовал неверные зависимости.

269
задан StackzOfZtuff 22 November 2017 в 05:14
поделиться

4 ответа

Вы можете использовать утилиту file, чтобы указать тип окончания строки.

Unix:

$ file testfile1.txt
testfile.txt: ASCII text

"DOS":

$ file testfile2.txt
testfile2.txt: ASCII text, with CRLF line terminators

Преобразование из "DOS" в Unix:

$ dos2unix testfile2.txt

Преобразование из Unix в "DOS":

$ unix2dos testfile1.txt

Преобразование уже преобразованного файла не имеет никакого эффекта, поэтому это безопасно работать вслепую (т.е. без предварительного тестирования формата), хотя, как всегда, применяются обычные заявления об отказе от ответственности.

380
ответ дан 23 November 2019 в 02:19
поделиться

Vim - всегда новые строки витрин как ^M

, Если Вы предпочитаете всегда видеть новые строки Windows в рендеринге энергии как ^M, можно добавить эту строку к Вашему .vimrc:

set ffs=unix

Это заставит энергию интерпретировать каждый файл, который Вы открываете как файл Unix. Так как файлы Unix имеют \n как символ новой строки, файл окон с символом новой строки \r\n все еще представит правильно (благодаря \n), но будет иметь ^M в конце файла (который является, как энергия представляет \r символ).

<час>

Vim - иногда новые строки витрин

, Если Вы предпочли бы только устанавливать его на основе на файл, можно использовать :e ++ff=unix при редактировании данного файла.

<час>

Vim - всегда показывает тип файла (unix по сравнению с [1 113])

, Если Вы хотите, чтобы нижняя строка энергии всегда отобразила, какой тип файла Вы редактируете (и Вы не вызвали, устанавливает тип файла на Unix), можно добавить к Вашему statusline с [1 122]
set statusline+=\ %{&fileencoding?&fileencoding:&encoding}.

Мой полный statusline обеспечивается ниже. Просто добавьте его к Вашему .vimrc.

" Make statusline stay, otherwise alerts will hide it
set laststatus=2
set statusline=
set statusline+=%#PmenuSel#
set statusline+=%#LineNr#
" This says 'show filename and parent dir'
set statusline+=%{expand('%:p:h:t')}/%t
" This says 'show filename as would be read from the cwd'
" set statusline+=\ %f
set statusline+=%m\
set statusline+=%=
set statusline+=%#CursorColumn#
set statusline+=\ %y
set statusline+=\ %{&fileencoding?&fileencoding:&encoding}
set statusline+=\[%{&fileformat}\]
set statusline+=\ %p%%
set statusline+=\ %l:%c
set statusline+=\ 

Это представит как [1 132]

.vim/vimrc\                                    [vim] utf-8[unix] 77% 315:6

у основания Вашего файла

<час>

, Vim - иногда показывает тип файла (unix по сравнению с [1 118])

, Если Вы просто хотите видеть, какой файл Вы имеете, можно использовать :set fileformat (это не будет работать, если у Вас будет сила, устанавливает тип файла). Это возвратится unix для файлов Unix и dos для Windows.

0
ответ дан 23 November 2019 в 02:19
поделиться

В оболочке bash попробуйте cat -v <имя файла> . Это должно отображать символы возврата каретки для файлов Windows.

(У меня это сработало в rxvt через Cygwin в Windows XP).

Примечание редактора: cat -v визуализирует \ r (CR) символы. как ^ M . Таким образом, завершающие строку \ r \ n последовательности будут отображаться как ^ M в конце каждой выходной строки. cat -e дополнительно визуализирует \ n , а именно как $ . ( cat -et дополнительно отобразит символы табуляции. Как ^ I .)

99
ответ дан 23 November 2019 в 02:19
поделиться

В vi...

:set list, чтобы увидеть окончания строк.

:set nolist, чтобы вернуться к нормальному состоянию.

Хотя я не думаю, что вы можете увидеть \n или \r\n в vi, вы можете увидеть, какой это тип файла ( UNIX, DOS и т. д.), чтобы определить, какие окончания строк он имеет...

:set ff

Кроме того, из bash вы можете использовать od -tc <имя файла> или просто od -c <имя файла> для отображения результатов.

123
ответ дан 23 November 2019 в 02:19
поделиться
Другие вопросы по тегам:

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