【linux/shell案例实战】解决Linux和Windows的换行符CRLF和LF问题

目录

[一.什么是Linux 和 Windows 的换行符 CRLF 和 LF](#一.什么是Linux 和 Windows 的换行符 CRLF 和 LF)

[二.使用Linux 中命令 dos2unix 和 unix2dos 实现CRLF 和LF的转换](#二.使用Linux 中命令 dos2unix 和 unix2dos 实现CRLF 和LF的转换)

[三.使用 windows 中的代码编辑器实现 CRLF 和 LF 的转换(Notepad++)](#三.使用 windows 中的代码编辑器实现 CRLF 和 LF 的转换(Notepad++))


一.什么是Linux 和 Windows 的换行符 CRLF 和 LF

CR是Carriage-Reruen(回车)的缩写
LF是Line-Feed(换行)的缩写

Linux(Unix)和 mac 默认使用的是"/n"作为换行符,对应 ACSI表中的LF,值为10(0x0a)

Windows 默认使用的是"\r\n","\r"对应 ACSI表中的CR,值为13(0x0d),"\r"在vim 中被解释为"^M"。

简单来说,就是Linux 回车符号为LF,DOS的换行符为CRLF,也就是多了一个M符号出来。

Linux 中使用了Windows 中的换行符,文件无法正常运行,会报如下错误:

/bin/bashM: bad interpreter: No such file or directory.

二.使用Linux 中命令 dos2unix 和 unix2dos 实现CRLF 和LF的转换

bash 复制代码
dos2unix -k -n file newfile

unix2dos -k -n file newfile

-k:不更新文件上次内容经过自定义的时间

-n:保留原本的旧文件

bash 复制代码
dos2unix test.sh test.sh

could not open/dev/kbd to get keyboard type US keyboard assumed.could not get keyboard type US keyboard assumed.

在SunSolairs中运行转换命令报错:

1.可以忽略,依然会生成新文件;

2.使用-437参数(useUScodepage)dos2unix-437 test.sh test_new.sh

三.使用 windows 中的代码编辑器实现 CRLF 和 LF 的转换(Notepad++)

在notepad++中,右下角可以看到当前文件的编码格式,可以右键进行修改。

同时我们可以在notepad++上面的导航栏中设置所有字符的显示,这时候就可以在行未显示出LF和CR了,便于观察具体的编码格式。

相关推荐
带电的小王7 分钟前
sherpa-ncnn:Linux(x86/ARM32/ARM64)构建sherpa-ncnn --语音转文本大模型
linux·语音识别·实时音视频·sherpa-ncnn
沧浪之水!21 分钟前
【Linux网络】:套接字之UDP
linux·网络·udp
BranH23 分钟前
Linux系统中命令设定临时IP
linux·运维·服务器
秋风起,再归来~41 分钟前
【Linux庖丁解牛】—进程优先级!
linux·运维·服务器
cosX+sinY1 小时前
ubuntu 20.04 编译运行lio-sam,并保存为pcd
linux·ubuntu·机器人
Lary_Rock2 小时前
Android 编译问题 prebuilts/clang/host/linux-x86
android·linux·运维
熬夜学编程的小王2 小时前
【Linux篇】理解信号:如何通过信号让程序听从操作系统的指令
linux·信号产生·软件条件产生信号
绵绵细雨中的乡音2 小时前
Linux进程学习【基本认知】
linux·运维·学习
Johny_Zhao2 小时前
MySQL 高可用集群搭建部署
linux·人工智能·mysql·信息安全·云计算·shell·yum源·系统运维·itsm
珹洺3 小时前
Linux操作系统从入门到实战(三)Linux基础指令(上)
linux·运维·服务器