CR, LF, CR/LF 回车 换行【转】

 “回车”(Carriage Return)和“换行”(Line Feed)这两个概念的来历和区别。

在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

Unix系统里,每行结尾只有“<换行>”,即"/n";Windows系统里面,每行结尾是“<换行><回车 >”,即“/n/r”;Mac系统里,每行结尾是“<回车>”,即"/r";。一个直接后果是,Unix/Mac系统下的文件在 Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。



在文本处理中, CR, LF, CR/LF是不同操作系统上使用的换行符.
Dos和windows采用回车+换行CR/LF表示下一行,
而UNIX/Linux采用换行符LF表示下一行,
苹果机(MAC OS系统)则采用回车符CR表示下一行.
CR用符号'/r'表示, 十进制ASCII代码是13, 十六进制代码为0x0D;
LF使用'/n'符号表示, ASCII代码是10, 十六制为0x0A.
所以Windows平台上换行在文本文件中是使用 0d 0a 两个字节表示, 而UNIX和苹果平台上换行则是使用0a或0d一个字节表示.
一般操作系统上的运行库会自动决定文本文件的换行格式. 如一个程序在windows上运行就生成CR/LF换行格式的文本文件,而在Linux上运行就生成LF格式换行的文本文件.
在一个平台上使用另一种换行符的文件文件可能会带来意想不到的问题, 特别是在编辑程序代码时. 有时候代码在编辑器中显示正常, 但在编辑时却会因为换行符问题而出错.
很多文本/代码编辑器带有换行符转换功能, 使用这个功能可以将文本文件中的换行符在不同格式单互换.
在不同平台间使用FTP软件传送文件时, 在ascii文本模式传输模式下, 一些FTP客户端程序会自动对换行格式进行转换. 经过这种传输的文件字节数可能会发生变化. 如果你不想ftp修改原文件, 可以使用bin模式(二进制模式)传输文本.

### 回答1: 将Unix换行符(LF换为Windows换行符(CR LF)可以使用以下命令: ``` sed 's/$/\r/' unixfile.txt > windowsfile.txt ``` 其中,`unixfile.txt`是Unix格式的文件名,`windowsfile.txt`是换后的Windows格式文件名。 这个命令使用`sed`命令将每一行的结尾($)替换为回车符(\r),从而将Unix换行换为Windows换行符。 ### 回答2: UnixWindows操作系统默认使用不同的换行符,Unix使用的是LF(Line Feed),而Windows使用的是CR(Carriage Return)和LF(Line Feed)的组合。因此在在将文本文件Unix换到Windows操作系统时需要进行Unix(LF)换为Windows(CR LF)的过程。 有一些常用的方法可以实现Unix换为Windows文本格式: 1. 使用文本编辑器:打开Unix格式的文本文件,然后使用文本编辑器将换行LFCR LF换行符。 2. 使用命令行工具:在Unix操作系统上使用命令行工具,例如sed,在文件中搜索并替换所有LFCR LF字符。命令如下: sed -e 's/$/^M/g' inputfile.txt > outputfile.txt 3. 使用换工具:有许多换工具可以实现Unix换为Windows格式。例如,dos2unixunix2dos工具可以在UnixWindows操作系统之间进行文本格式换。这些工具具有简单易用的界面,用户只需要选择需要换的文件并点击换按钮即可。 4. 使用脚本:编写一个脚本,以实现批量Unix格式的文本文件Windows格式。脚本中主要包含文件遍历和字符替换两个步骤。 总之,无论使用哪种方法将Unix格式的文本文件换为Windows格式,它们都有一个共同点,就是都需要将Unix中的LF换行换为Windows中的CR LF换行符,以确保文本文件可以在Windows中正确地显示。 ### 回答3: UnixWindows系统之间的换行符不一致,Unix使用的是LF(换行符),而Windows则使用CR LF(回车换行符)。由于这种差异,当在Windows系统下打开一个使用Unix换行符的文本文件时,将会发生文本格式错误的问题,导致文件无法正确显示。因此,需要通过一些方法进行Unix(LF)换为Windows(CR LF)的操作。 一种常见的方法是使用一些文本编辑器,如Notepad++或Sublime Text等。这些编辑器都有文件格式的功能,可以将文本文件Unix格式换为Windows格式。具体方法如下: 1. 在文本编辑器中打开Unix格式的文本文件。 2. 点击“文件”菜单下的“另存为”选项。 3. 在弹出的对话框中,选择“编码”为“ANSI”,然后再选择“换行符格式”为“WindowsCR LF)”。 4. 保存并关闭该文件。 另一种方法是使用命令行工具,如Unix系统下的dos2unixunix2dos命令。在Unix系统中,可以使用这两种命令将文本文件换为Windows格式,以便在Windows系统下正确显示文件。命令语法如下: - dos2unix:dos2unix [options] file1 [file2 ...] - unix2dosunix2dos [options] file1 [file2 ...] 其中,file1,file2是要进行换的文本文件名,options是一些可选参数,如-s(安静模式,不显示换信息)、-n(不保留源文件)、-k(保留源文件),等等。 需要注意的是,进行Unix(LF)换为Windows(CR LF)的操作,需要根据不同的文本编辑器或命令行工具选择不同的方法,以确保换的准确性和正确性。同时,应注意备份源文件以防止误操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值