已解决:Linux/Vim下文件出现^M如何处理

使用vim处理如下:

vim test.sh
:set ff=unix
:wq

或者使用替换方法,需要注意的是 ^M 符号是键盘 Ctrl+v+m按出来的

vim test.sh
:%s/^M//g
:wq

其他类似问题:

$’\r’: command not found

是Windows和Linux的文件格式不同,如果在脚本中有空行,脚本是在Windows下进行编辑之后上传到linux上去执行的话,就会出现这个问题。

windows 下的换行符是\r\n,而 linux 下的换行符是\n,没有识别\r,所以会导致上述的报错,这个属于脚本编码的问题。

知识点

不同系统,有不同的换行符号:

  1. 在 Windows 下的文本文件的每一行结尾,都有一个回车(\n)和换行(\r)通用标识为CRLF
  2. 在 Linux 下的文本文件的每一行结尾,只有一个回车(\n)通用标识为LF
  3. 在 macOS 下的文本文件的每一行结尾,只有一个换行(\r)通用标识为CR
Author: thinkwei

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注