尋找一種方法來chomp換行符,而不管創建文件的平臺如何。在unix,windows和mac文本文件上工作的多平臺chomp
由perlport#newlines指定的問題是,換行每個平臺上不同編碼:
\ 012 UNIX
\ 015 \ 012窗戶
\ 015 MAC
然而,格格是特定於平臺的,只會刪除正在運行的平臺的字符,或者由變量設置的任何內容。
到目前爲止,我想出了下面的正則表達式,這似乎是工作:
# multiplatform chomp
s/\015?\012?$//;
是正確的解決辦法還是我失去了一些案件,有一個更好的?
如果你正在讀一個文件',而(){...}'你只能得到一個線在Unix系統上的Mac文件。所以除非你的chomp純粹是爲了理論目的,否則你必須將文件分割成邏輯行。 –
jmz
2010-08-06 13:04:05
我認爲Macs現在終於明智地做了一些事情 - 即:* nix方式 - 自OSX以來。 – cHao 2010-08-06 13:18:35
是的,除非您正在使用舊系統和文件,否則現在很難看到舊式的Mac系列結局。即使在這種情況下,我只是簡單地將文件轉換爲unix格式,然後再處理它們。 – Ether 2010-08-06 14:51:00