LF和CRLF,lf和crlf的区别 十六进制

http://www.itjxue.com  2023-01-15 02:24  来源:未知  点击次数: 

ubuntu 怎么把crlf转成lf

如何将LF和CRLF的文件相互转换,只要用sed就可以实现。

LF--CRLF

sed -i 's/$/\r/g' file

将LF格式的文件的末尾加上\r即可,通常来说CRLF的标准格式是\r\n, 但是只要\r和\n只要匹配上,不管谁前谁后,都能够转换为CRLF格式。还有一点要注意的是一个\r可以匹配N多个\n,转变为N个CRLF[\r\n],比如:

1. sed -i 's/$/\n\n/g' file[LF FILE]

2. sed -i 's/$/\r/g' file

会匹配出两个CRLF,具体多少个\n和\r多少比例匹配好像没有规律。

CRLF--LF

sed -i 's/\r//g' file

只要将每行中\r变成空就OK了。

CRLF、CR、LF详解

众所周知,Windows操作系统采用两个字符来进行换行,即CRLF;Unix/Linux/Mac OS X操作系统采用单个字符LF来进行换行;另外,MacIntosh操作系统(即早期的Mac操作系统)采用单个字符CR来进行换行。

据野史记载,在很久以前的机械打字机时代,CR和LF分别具有不同的作用:LF会将打印纸张上移一行位置,但是保持当前打字的水平位置不变;CR则会将“Carriage”(打字机上的滚动托架)滚回到打印纸张的最左侧,但是保持当前打字的垂直位置不变,即还是在同一行。

当CR和LF组合使用时,则会将打印纸张上移一行,且下一个打字位置将回到该行的最左侧,也就是我们今天所理解的换行操作。

随着时间的推移,机械打字机渐渐地退出了历史舞台,当初的纸张变成了今天的显示器,打字机的按键也演变为了如今的键盘。在操作系统出现的年代,受限于内存和软盘空间的不足,一些操作系统的设计者决定采用单个字符来表示换行符,如Unix的LF、MacIntosh的CR。他们的意图都是为了进行换行操作,只是当初并没有一个国际标准(或者其他原因,鬼知道),所以才有这样字符上的不同。

许多现代的文本编辑器和命令行工具都提供了可选择的换行符配置,方便用户按照自己的意愿来改变换行符的表现形式,所以我们只需要知道CRLF、CR、LF的作用即可。

如何设置才能GitLab的API来提交Crlf和LF混合存在的文件,用api提交后下载下来换行符保持不变?

探究CRLF和LF

安装git到configuring the lien ending conversion时,有三个选项:

a.Checkout Windows-style,commit Unix-style line endings.

b.Checkout as-is,commit Unix-style line endings.

c.Checkout as-is,commit as-is line endings.

commit的时候有时也会有相关Line的处理提示。

vscode 中的LF CRLF

\n 、\r\n 换行还是回车换行

本文参考自: ?

我们打开Visual Studio Code编辑器,可以看到右下角有这个LF,这是VS Code的默认行尾序列的符号:

点开后,我们可以到,有两种模式可选,LF,CRLF:

为什么是这样呢,这两种模式有什么区别呢?

在Linux下,默认换行的话,是LF模式,见下图两个红框部分:

Linux下创建的LinuxFIle文件,用Linux的编辑器在里面写了三行文本。然后我用Python显示出转义符,可以看到是\n,这里的\n就是指的是 换行符(LF)

然后我们在Windows下用记事本,写一个文件WindowsFile.txt,然后上转到Linux上去同样的方法查看。可以看到是\r\n,\r指的就是 回车(CR) ,\r\n连起来就是 回车换行(CRLF)

也就是说:在Linux里编辑文件,一行结束后跟的是\n;在Windows里用自带的记事本编辑文件,一行结束后跟的是\r\n

tips:在Windows下有很多编辑器,是默认支持LF的方式,如Visual Studio Code、Sublime Text、Notepadd++,而且默认的编码格式是UTF-8,所以,大家在Windows下写Linux脚本,或打开Linux下的文件,可以用上面的编辑器,而不要用Windows自带的记事本。

CR和LF是缩写,其实他们的全称分别是:Carriage-Return和Line-Feed。追本溯源的说,CR(Carriage-Return)和LF(Line-Feed)这两个词来源于打字机的发明和使用。

打字机的纸张向下卷动一行,就是 换行(LF,?Line-Feed)

将打印头从最右边归位到最左边,就是 回车(CR,?Carriage-Return)

如果把一个Windows记事本建立的文档,放到Linux里用的话,要用dos2unix来转换一下后,再使用。当然最好的方法还是用专门的编辑器,不要用记事本。

(责任编辑:IT教学网)

更多

推荐其他WEB语言文章