2015年11月12日 星期四

移除dos格式的「^M」

這篇是繼上篇平移字幕時間軸的,因為dos格式斷行後都會有「^M」,以前就曾經因為這個傢伙讓特定程式無法跑,所以有時候會需要移除它們,上網查了些方式後,我認為有兩個方式都不錯使用,都可以直接透過vim處理。

 第一個方式,在終端機用vim打開文件後,輸入以下:

  :e ++ff=unix #用unix file format,這樣^M才會顯示出來。  
 :%s/ˆM//g   
 #%s/ˆM/表示將所有的^M全部取代掉成沒有,/g表示每一行中所有的^M都要取代掉。  
 #^M的輸入方式為先輸入control+v,再輸入control+m。  

第二個方式,在終端機用vim打開文件後,輸入以下:

  :e ++ff=dos #用dos file format,^M會自動隱藏起來。  
 :set ff=unix #把file format改成unix格式。  
 :update #save any changes  

ps:
1. DOS的斷行字元為^M$,一般稱為CRLF兩個符號,而在Linux,則只有LF($)這個斷行符號。
2. 以後不用再用dos2unix或是unix2dos轉換格式,可以直接使用vim:set ff=(unix, dos or mac)來進行格式轉換。

參考網址:
http://vim.wikia.com/wiki/File_format
http://linux.vbird.org/linux_basic/0310vi.php

沒有留言: