LINUX.ORG.RU
ФорумTalks

newline в конце файлов


0

1

Тут с ПМ'ом возникла диллема; он утверждает что переводы в конце строк не нужны и это лютый анахроизм.

Как в целом убедить, то что это необходимо? Помимо того, что приглашение терминала превращается в кашу, если сделать cat файлу без перевода строки в конце файла.

а чем это последняя строка лучше/хуже всех остальных, что не должна заканчиваться переносом? это ведь удобно, когда выделяешь строку, например. при отсутствии переноса придётся выделять часть строки.

Adjkru ★★★★★
()

\n __требуется__ в конце некоторых системных файлов. В частности fstab. В прочих случаях - на вкус и цвет

а вообще тонкий вброс :)

MKuznetsov ★★★★★
()

cat

Так это ж тоже анахронизм. Вот M$ Word - эт самое оно.

Cancellor ★★★★☆
()

Скажи своему ПМ'у, что после унитаза подтираться тоже необязательно. Просто это гигиена и правила хорошего тона.

Slavaz ★★★★★
()

tensai_cirno

Тут с ПМ'ом возникла диллема; он утверждает что переводы в конце строк не нужны и это лютый анахроизм.

а что такое «строка в текстовом файле»? Если определить строку как «набор символов ограниченных символом \n», то если не ставить в последней строке \n, то она превращается в НЁХ. Это приводит к усложнению парсеров, а оно кому-то надо?

С точки зрения пользователя, который кормит какие-то программы какими-то файлами, есть смысл _всегда_ ставить \n в конце файла, а не ломать голову о том, какого мнения придерживался (быдло)кодер в данном вопросе.

drBatty ★★
()

кстати, vim ставит \n в конце последней строки автоматически. Или твой ПМ считает, что vim не юниксвэйный?

drBatty ★★
()

Кроме ката \n еще не любят RCSы всякие :) свн там или гыт.

Jetty ★★★★★
()

http://gcc.gnu.org/ml/gcc/2003-11/msg01568.html
Это ежели сишечка

Ну, и чисто для удобства: я могу сделать ctrl+end и дописать код в конец файла, вместо того, чтобы делать Ctrl+end, end, enter.
Либо же сделать cat file1 >> file2 и не получить кашу.

iSage ★★★★
()

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

schizoid ★★★
()

Я всегда ставлю. Не знаю, наверное есть этому даже какое-то обоснование из времен динозавров, но я себя просто очень некомфортно чувствую, когда в конце нет \n.

Ok
()

Нормальные текстовые файлы всегда имеют в конце строки перенос. Даже если его явно не делать.

66 69 72 73  74 20 73 74   72 69 6E 67  0A 73 65 63 first string.sec
6F 6E 64 20  73 74 72 69   6E 67 0A                       ond string.
Если убрать перенос в конце второй строки, то например тот же wc работать не будет правильно. Например заменим 0A на 67, т.е. 'g'
% cat testfile  
first string
second stringg%                                                                                                                     % wc testfile 
 1  4 27 testfile

invy ★★★★★
()

Нужно в основном динозаврам. Но когда жмёшь ctrl+end так удобно попасть всё-таки в первую колонку текста в конце файла, а не на 100500й позиции.

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

Скажи своему ПМ'у, что после унитаза подтираться тоже необязательно.

Ахах, +1.

IPR ★★★★★
()

Сначала было подумал, а чего это ТС разговаривает с Пистолетом Макарова?

yax123 ★★★★★
()

Помимо того, что приглашение терминала превращается в кашу, если сделать cat файлу без перевода строки в конце файла.

этого достаточно

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

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

Я конфиги обычно while(s = readline){ тут парсинг } читаю.

Хотя для такого варианта лучше без /n в конце, т.к. с ним еще одна пустая строка читается в конце файла

Loki13 ★★★★★
()

\n обязательно в последней строке

qulinxao ★★☆
()

Помимо того, что приглашение терминала превращается в кашу, если сделать cat файлу без перевода строки в конце файла.

УМВР. Use zsh, luke.

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

А еще крон работать не будет без \n в конце...

Последнее задание не будет, я тоже на эти грабли натыкался :)

xorik ★★★★★
()
Ответ на: комментарий от ls-h

А почему именно требуется?

на их основе системой (ядром, модулями/драйверами) генерируются другие основополагающие системные файлы. Исторически сложившемуся коду видимо не до тонкостей синтаксического анализа - строка должна заканчиваться \n. Баста. А если в конце файла нет \n значит там какая-то хреновая строка и видимо ошибка админа :)

где-то так

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