我們專案因為是跑在 Linux 上,因此原始碼的 Line ending 通常是採用 Unix 格式,

也就是 LF (0a),不像 Windows 用的 CR LF (0d 0a)~

不過今天同事給了我一堆 Windows line ending 的檔案,

直接放到檔案庫的話,檔案差異度太多 (每行都改);

要手動修改的話,Sublime Text 是可以用 View > Line Endings > Unix 來改,

但改一堆檔案的話可就累死了...

 

決定還是用 sed 來搞定這件事,執行下面的指令,

就能將目前目錄下所有檔案的 line ending 都從 Windows 改成 Linux 格式:

sed -i "s/^M$//" *

 

要注意那個 ^M 並不是打出鍵盤上的 ^ 和 M 兩個字元,

而是要按下 Ctrl-V 接著 Ctrl-M 跑出來的,代表的是 Windows 格式的 line ending 喔~

 

參考資料:How to convert DOS/Windows newline (CRLF) to Unix newline (\n) in bash script?

 

文章標籤
創作者介紹

亂打一通的心情日記

ephrain 發表在 痞客邦 PIXNET 留言(0) 人氣()