在linux下打開windows編輯過的文本,會出現由於換行符不一致而導致的內容格式錯亂的問題。最常見的就是出現^M 。
我出現的問題是:在windows編輯過的文件,傳到linux上后再用vim打開,內容沒有換行。也就是所有文件內容都在一行。然后再實際換行的位置多了個^M。
下面的方法是網上搜的。其中dos2unix還有一個相對應的unix2dos
1.使用dos2unix命令。一般的分發版本中都帶有這個小工具(如果沒有可以根據下面的連接去下載),使用起來很方便:
$ dos2unix myfile.txt
上面的命令會去掉行尾的^M。
2.使用vi的替換功能。啟動vi,進入命令模式,輸入以下命令:
:%s/^M$//g # 去掉行尾的^M。
:%s/^M//g # 去掉所有的^M。
:%s/^M/[ctrl-v]+[enter]/g # 將^M替換成回車。(我是用這個方法調好的)
:%s/^M/\r/g # 將^M替換成回車。
3.使用sed命令。和vi的用法相似:
$ sed -e ‘s/^M/\n/g’ myfile.txt
注意:這里的“^M”要使用“CTRL-V CTRL-M”生成,而不是直接鍵入“^M”。