linux去掉文件行尾的^M


在Linux下使用vi來查看一些在Windows下創建的文本文件,有時會發現在行尾有一些“^M”。這種文件在執行時會報錯bash: ./startserver.sh: /bin/sh^M: bad interpreter: No such file or directory。可以通過下面的方式解決:

用vi 打開文件,輸入: set ff? 回車,如果顯示的結果是dos,輸入: set ff=unix 即可。

 

2017.3.25補充

此外還有幾種解決方法。

1.VI下使用正則表達式替換
   g/^M/s/^M//
    或者
   %s/^M//g

2.使用sed 工具
    sed ’s/^M//’ filename > tmp_filename

3.既然window下的回車符多了‘ ’,那么當然通過刪除‘ ’ ,也可以實現:
    tr -d " "

4.在終端下敲命令:

    $ dos2unix filename

在網上又搜索到一篇將UNIX和WINDOWS間的換行轉換的文章,學習補充下:
語法
dos2unix [-kn] file [newfile] 從DOS轉換到UNIX
unix2dos [-kn] file [newfile] 從UNIX轉換到DOS也就是WINDOWS
-k : 保留該文檔原來的 mtime 時間 (不更新文檔上次內容經過修改的時間)
-n : 保留原來的文檔,將轉換后的內容輸入到新文檔中 例如: dos2unix -n old new


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM