題 檢測文件EOL的更好方法


有沒有快速的方法來檢測文件的EOL?

我通常只是打開文件 VIM 並查看狀態行。我 當然 有一個更好,更快的方式。

我認為grep可能有效,但我不確定它是否是檢測EOL的最優雅方式。我專注於檢測Mac EOL(CR),Windows(CRLF)和Unix(LF)。

a * nix / Bash解決方案是首選,但我也對其他平台感興趣。

(早些時候,我回答 服務器故障問題 這可能是一個EOL問題,它讓我想知道是否有一個快速的方法。)


5
2017-10-24 21:59


起源


我想你可以搞定 (\r|\n|\r\n),但就像你說的那樣,那不是很優雅。 - Phoshi
3種可能的EOL是什麼? - barlop
Mac(CR),Windows(CRLF)和Linux(LF)。我相信那裡還有更多,但那些是我關心的EOL。我會修改這個問題。 - Belmin Fernandez


答案:


file (至少在Linux上常見的魔術數據庫)是一種簡單的方法。但是,它不會警告你有關混合結尾的文件。

$ file unix mac dos  # the files have line endings matching their names
unix: ASCII text
mac:  ASCII text, with CR line terminators
dos:  ASCII text, with CRLF line terminators

10
2017-10-24 23:10



找到這個難以擊敗的人。 - Belmin Fernandez
'file'不是一種可靠的方法,至少在沒有'file'的額外參數的情況下。在XML文件中,它只會輸出“XML文檔文本”,無論EOL字符序列如何(在MinGW 1.0.17,2011-05-30上觀察到)。 (我在工作中遇到了這個問題。) - Peter Mortensen