Linux和window文件换行符问题

  • Post author:
  • Post category:linux





背景

通过界面化git操作代码,遇到如下报错
在这里插入图片描述

简单翻译,得到以下内容:

文本相同,但文件不匹配
发现以下差异:
换行符




原因

在Linux中有修改过内容导致的,通过查询资料,其报错问题根源是windows和linux换行符表现形式不同造成的,区别如下表:

windows linux MacBook
换行符 \r\n \n \r
ASCII值 0x0d0a 0x0a 0x0d

其中:

“\r”在ASCII中表示“换行(LF)”

“\n”在ASCII中表示“回车(CR)”




解决

注:主要在linux中解决由于文件结尾产生的错误

步骤:

	1、确认代码无误
	2、利用命令“vi -b [filename] ”查看结尾是否多了“^M”
	3、文件格式转换


方式一:使用软件dos2unix

下载并安装dos2unix

利用命令:

dos2unix [filename]

完成转换



方式二:手动替换(vim+正则表达式)

利用命令:

vim -b [filename]

打开该文件

在命令模式下输入:

%s/^M//g

或者

g/\^M/s/\^M//

保存并退出

注意:方式二中“^M”的输入方式:ctrl+v+m



版权声明:本文为oneusername原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。