通常情况下,我们在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 命令直接修改文件。

方法3如下:

1.vim test.sh 打开文件

2.输入:set fileformat=unix

3.输入:wq保存并退出




Logo

更多推荐