红联Linux门户
Linux帮助

vim处理windows文件回车符

发布时间:2017-04-12 16:07:27来源:linux网站作者:fc34235
通常情况下,我们在Linux中使用vim打开window环境下编辑的文件文本时,行尾不会显示出在linux环境下多除的"\r"(window下回车符)字符。这是因为vim打开此文件时自动转换为linux的格式进行显示。如要让其显示出来,可以使用e ++ff=unix %命令。实际显示会是“^M”代表"\r"。
 
虽然vim在显示window格式文本时,会自动处理"\r“字符并显示出来。但实际我们使用wq命令保存退出时,其并不会自动将"\r”字符去掉,保存成linux格式的文件。这样就会导致一些问题。比如window下编辑的shell脚本,在linux环境下无法执行会报如下类似错误:
./test.sh: 行 2: $'\r': 未找到命令
./test.sh: 行 8: $'\r': 未找到命令
./test.sh: 行 17: $'\r': 未找到命令
这样就需要我们做格式转换。
 
方法1如下:
1.vim tesh.sh 打开文件
2.输入:e ++ff=unix % 命令显示window下的回车符(\r),这时每行尾会显示^M字符,此字符就表示windows下的回车符。
3.输入:%s/^M//g 替换命令将回车符去掉。注意^M的输入方法是键盘Ctrl + V (^) 加上 Ctrl + M(M)
4.输入:wq保存文件并退出
 
方法2如下:
1.利用sed -i 's/\r$//' test.sh 命令直接修改文件。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/29947.html