哪些类型的文本文件不应以换行符结尾?

哪些类型的文本文件不应以换行符结尾?

这个问题这个问题指出通常标准是以换行符结束文本文件以满足 POSIX 标准,这是 GNU 工具和其他 POSIX 兼容工具所期望的。

然而,作为一名 C# 开发人员,我知道处理csproj文件的工具通常不包含终止换行符。我还见过一些工具可以从jsonxml文件中删除终止换行符。我认为,如果处理这些文件的通用工具最终会再次删除它们,那么避免在文本文件末尾包含换行符是有意义的。

那么,由于工具的原因,哪些类型的文本文件不应以换行符结尾?

答案1

虽然不完全是文本文件,但符号链接实际上是一个包含一段文本的小文件(通常适合 inode 本身,因此不需要为该文件分配数据块)。

符号链接可以以换行符结尾,但在最常见的情况下不应以换行符结尾。

另一种不应(当然不能)以换行符结尾的文件类型是空文件。

在 UNIX 中,文本文件要么是空的,要么包含一个或多个可能为空的行,每一行都以换行符终止。如果最后一行不是由换行符终止,则该文件不是正确的文本文件。

空文件根本不包含任何字节;添加换行符的那一刻,您已将其“类型”从空更改为非空。

答案2

用作由 处理的搜索词的输入的文本文件grep -f不得以换行符结尾(** 在文本编辑器中)否则会匹配所有内容

你可以自己尝试一下这个例子
grep 未找到基因的所有实例

截屏


编辑:请注意问题是关于收集示例的“由于工具的原因,文本文件不应以换行符结尾。”虽然我的第一个陈述并不适用于一般情况,但它是一个完美的例子“文本文件类型”(文本编辑器创建的文件)因此在问题上下文中有效,因为这是每个人在使用文本编辑器时所经历的。

它并不意味着作为\n文件系统级别上的换行符的广泛声明,而是作为极端情况的示例普通用户的看法

感谢@Kusalananda @ilkkachu 真正澄清了这是两个\n\n换行符(尽管其中一个是由文本编辑器默默添加的,因此不可见)

相关内容