哪些類型的文字檔案不應以換行符號結尾?

哪些類型的文字檔案不應以換行符號結尾?

這個問題這個問題指出通常標準是以換行符號結束文字檔案以滿足 POSIX 標準,這是 GNU 工具和其他 POSIX 相容工具所期望的。

然而,身為 C# 開發人員,我知道處理csproj文件的工具通常不包含終止換行符。我還見過一些工具可以從jsonxml文件中刪除終止換行符。我認為,如果處理這些文件的通用工具最終會再次刪除它們,那麼避免在文字檔案末尾包含換行符是有意義的。

那麼,由於工具的原因,哪些類型的文字檔案不應以換行符號結尾?

答案1

雖然不完全是文字文件,但符號連結實際上是一個包含一段文字的小文件(通常適合 inode 本身,因此不需要為該文件分配資料塊)。

符號連結可以以換行符號結尾,但在最常見的情況下不應以換行符號結尾。

另一種不應(當然不能)以換行符號結尾的文件類型是空文件。

在 UNIX 中,文字檔案要麼是空的,要麼包含一個或多個可能為空的行,每一行都以換行符號終止。如果最後一行不是由換行符號終止,則該檔案不是正確的文字檔案。

空文件根本不包含任何位元組;添加換行符的那一刻,您已將其“類型”從空更改為非空。

答案2

用作由 處理的搜尋字詞的輸入的文字檔grep -f不得以換行符號結尾(** 在文字編輯器中)否則會符合所有內容

你可以自己試試看這個例子
grep 找不到基因的所有實例

螢幕截圖


編輯:請注意問題是關於收集範例的“由於工具的原因,文字檔案不應以換行符號結尾。”雖然我的第一個陳述並不適用於一般情況,但它是一個完美的例子“文字檔案類型”(文字編輯器建立的文件)因此在問題上下文中有效,因為這是每個人在使用文字編輯器時所經歷的。

它並不意味著作為\n文件系統層級上的換行符的廣泛聲明,而是作為極端情況的示例普通用戶的看法

謝謝@Kusalananda @ilkkachu 澄清這是兩個\n\n換行符(儘管其中一個是由文本編輯器默默添加的,因此不可見)

相關內容