Linux下刪除^M文件的方法


實踐:

1)

使用dos2unix命令:dos2unix filename

 Linux下去掉^M的四種方法_linux shell_腳本之家 https://www.jb51.net/article/142224.htm

第一種方法:

cat -A filename 就可以看到windows下的斷元字符 ^M

要去除他,最簡單用下面的命令:

dos2unix filename

第二種方法:

1
2
sed -i ‘s/^M //g ' filename
#注意:^M的輸入方式是 Ctrl + v ,然后Ctrl + M

第三種方法: 

1
2
3
#vi filename
:1,$ s/^M //g
^M 輸入方法: ctrl+V ,ctrl+M

第四種方法:

1
2
#cat filename |tr -d ‘/r' > newfile
#^M 可用 /r 代替

 

 

Linux下刪除^M文件的方法 - 簡書 https://www.jianshu.com/p/d039ab756181

Unix系統里,每行結尾只有“<換行>”,即“\n”;Windows系統里面,每行結尾是“<換行><回車>”,即“\n\r”;Mac系統里,每行結尾是“<回車>”。

1. 問題描述:

在windows下寫的文件上傳到Linux服務器之后,文件中多出了很多^M符號

2. 原因分析:

Linux和windows的文本中,對換行方式處理不同:

'\n' 10 換行(newline)
'\r' 13 回車(return
系統 換行方式
Windows 結尾是<換行><回車>,即“\n\r”
linux/unix 結尾是<換行>,即 “\n”
Mac系統 結尾是<回車>,即“\r”

所以windows下的文件,在Linux中會有^M,即回車符號
參考:回車符和換行符的區別

3.解決辦法:

解決辦法主要以下幾個方案:
注意: ^M要用Ctrl+v,<回車>代替

命令
1. vim 中使用替換命令::%s/^M//g
2. 使用sed:sed 's/^M//' filename > newfile
3. 使用tr刪除“\r”:tr -d "\r" filename
4. 使用dos2unix命令:dos2unix filename
5. 在vim下::set ff = unix(把dos文件類型變為unix)

此外,也可以使用sed把win文檔轉化為Linux下文檔:
find . -type f print0 | xargs -0 sed -i 's/^M$//'
其中實踐中試驗了第一種方法,舉例說明該命令的含義:
將文件中的 a 全部替換為b,可以使用:%s/a/b/g
參考:
去掉Linux中刪除^M符號的方法
vim如何去掉^M字符

 

 

 

Unix系統里,每行結尾只有“<換行>”,即“\n”;Windows系統里面,每行結尾是“<換行><回車>”,即“\n\r”;Mac系統里,每行結尾是“<回車>”。

1. 問題描述:

在windows下寫的文件上傳到Linux服務器之后,文件中多出了很多^M符號

2. 原因分析:

Linux和windows的文本中,對換行方式處理不同:

'\n' 10 換行(newline)
'\r' 13 回車(return
系統 換行方式
Windows 結尾是<換行><回車>,即“\n\r”
linux/unix 結尾是<換行>,即 “\n”
Mac系統 結尾是<回車>,即“\r”

所以windows下的文件,在Linux中會有^M,即回車符號
參考:回車符和換行符的區別

3.解決辦法:

解決辦法主要以下幾個方案:
注意: ^M要用Ctrl+v,<回車>代替

命令
1. vim 中使用替換命令::%s/^M//g
2. 使用sed:sed 's/^M//' filename > newfile
3. 使用tr刪除“\r”:tr -d "\r" filename
4. 使用dos2unix命令:dos2unix filename
5. 在vim下::set ff = unix(把dos文件類型變為unix)

此外,也可以使用sed把win文檔轉化為Linux下文檔:
find . -type f print0 | xargs -0 sed -i 's/^M$//'
其中實踐中試驗了第一種方法,舉例說明該命令的含義:
將文件中的 a 全部替換為b,可以使用:%s/a/b/g
參考:
去掉Linux中刪除^M符號的方法
vim如何去掉^M字符



作者:fwei
鏈接:https://www.jianshu.com/p/d039ab756181
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

第一種方法:

cat -A filename 就可以看到windows下的斷元字符 ^M

要去除他,最簡單用下面的命令:

dos2unix filename

第二種方法:

1
2
sed -i ‘s/^M //g ' filename
#注意:^M的輸入方式是 Ctrl + v ,然后Ctrl + M

第三種方法: 

1
2
3
#vi filename
:1,$ s/^M //g
^M 輸入方法: ctrl+V ,ctrl+M

第四種方法:

1
2
#cat filename |tr -d ‘/r' > newfile
#^M 可用 /r 代替


免責聲明!

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



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