Linux下文件與Windows下文件格式的區別與轉換

Windows下的TXT文件上傳到Linux系統上,用cut,grep.sed,awk等文本處理工具處理過後再次傳到Windows電腦上,發現內容都連到一塊了,解決辦法:

注:這個其實是換行符被刪除了。

so,問題來了,怎麼處理就不會把換行符刪除?

在Windows下編寫的文件,當在Linux下用 cat -v filename 命令查看時,可以發現每行的結尾都有^M字符。當我們在Linux下寫的應用程序在讀取含有^M字符的文件時,會出現意想不到的錯誤。所以需要將Windows下文件的格式轉換爲Linux下的文件格式。

仍存在的疑惑:

在我的vi中打開含有^M的文件,設置 :set list 只能看到以“$”表示的換行符,並沒有看到有^M字符。使用 :%/^M$//g 進行替換也沒有找到。

去除^M的方法:

去除^M的方法很多,總結一些如下:

方法1:在vi中轉換文件的格式,直接輸入以下命令,然後 :wq。

:set fileformat=unix

:set fileformat=dos

方法2:使用col命令

cat file_win | col -b > file_linux

cat file_win | col -b | tee file_linux

方法3:使用tr命令

cat file_win | tr -d '/r' > file_linux

cat file_win | tr -d '/r' | tee file_linux

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章