Какие типы текстовых файлов не должны заканчиваться символами новой строки?

Какие типы текстовых файлов не должны заканчиваться символами новой строки?

Этот вопросиэтот вопросОбратите внимание, что обычно стандартом является завершение текстовых файлов символами новой строки для соответствия стандарту POSIX, и это ожидается от инструментов GNU и других инструментов, совместимых с POSIX.

Однако, как разработчик C#, я знаю, что инструменты, которые работают с csprojфайлами, обычно не включают завершающий символ новой строки. Я также видел инструменты, которые удаляют завершающий символ новой строки из файлов jsonи xml. Я думаю, имеет смысл избегать включения новой строки в конец текстовых файлов, если обычные инструменты, которые работают с файлами, просто снова их удалят.

Итак, какие типы текстовых файлов не должны заканчиваться символами новой строки из-за особенностей инструментария?

решение1

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

Символическая ссылка может заканчиваться символом новой строки, но в большинстве случаев этого делать не следует.

Еще один тип файла, который не должен (точнее, не может) заканчиваться символом новой строки — это пустой файл.

В UNIX текстовый файл либо пуст, либо содержит одну или несколько возможно пустых строк, каждая из которых завершается новой строкой. Если последняя строка не завершается новой строкой, файл не является текстовым файлом.

Пустой файл не содержит вообще ни одного байта; в тот момент, когда вы добавляете новую строку, вы меняете его «тип» с пустого на непустой.

решение2

текстовый файл, используемый в качестве входных данных для поисковых терминов, обрабатываемых с помощью, grep -fне должен заканчиваться символом новой строки(** в текстовом редакторе)в противном случае это соответствовало бы всему

вы можете попробовать сами на этом примере
grep не находит все экземпляры гена

Скриншот


Редактировать:обратите внимание, что вопрос касается сбора примеров, где«текстовые файлы не должны заканчиваться символами новой строки из-за особенностей инструментария».Хотя мое первое утверждение не применимо в общем случае, оно является прекрасным примером для такого рода"тип текстового файла"(файл, созданный текстовым редактором) и, следовательно, действителен в контексте вопроса, поскольку именно это и происходит у всех при использовании текстового редактора.

Это не означает широкого заявления относительно \nсимвола новой строки на уровне файловой системы, а является примером для особого случая изобычный пользовательперспектива

спасибо @Kusalananda @ilkkachu за разъяснение на самом деле, что это два \n\nсимвола новой строки (хотя один из них автоматически добавляется текстовым редактором и поэтому невидим)

Связанный контент