問:我在Windows中經過FTP傳一個文本文件到Linux中,可是打開文本文件後每行最後都有^M的標誌。因爲很長,用編輯器去除太麻煩,有什麼解決辦法呢? linux
答:爲了解決這個問題,Linux下專門有兩個工具能夠互換Windows格式和Linux格式,它們分別是dos2unix和unix2dos。好比用下面的命令就能夠將文件名爲「filename」文件從Windows格式轉換爲Linux文本格式。 正則表達式
正文: windows
在linux下,不可避免的會用VIM打開一些windows下編輯過的文本文件。咱們會發現文件的每行結尾都會有一個^M符號,這是由於 DOS下的編輯器和Linux編輯器對文件行末的回車符處理不一致,
對於回車符的定義:
windows:0D0A
unixlinux: 0A
MAC: 0D
比較快捷的去除這些符號的方法有這麼幾種:
(1)是用VI的命令:
使用vi打開文本文件
vi dos.txt
命令模式下輸入
:set fileformat=unix
:w
(2) VI下使用正則表達式替換
g/^M/s/^M//
或者
%s/^M//g
(3)使用sed 工具
sed ’s/^M//’ filename > tmp_filename
(4)既然window下的回車符多了‘ ’,那麼固然經過刪除‘ ’ ,也能夠實現:
tr -d " "
(5)最後一個方法是本人最經常使用的方法,我的以爲最方便
在終端下敲命令:
$ dos2unix filename
直接轉換成unix格式,就OK了!~ 編輯器