CR: Carriage Return ASCII码为0x0D 即字符’\r’
LF: Line Feed ASCII码为0x0A 即字符’\n’
CR和LF是在计算机终端还是电传打印机的时候遗留下来的东西。电传打字机就像普通打字机一样工作,在每一行的末端,CR命令让打印头回到左边,LF命令让纸前进一行。虽然使用卷纸的终端时代已经过去了,但CR和LF依然存在,许多应用程序和网络协议仍使用它们作为分割符。
回车(CR)和换行(LF)都是用来表示“下一行”的意思,而标准没有规定要使用哪一个,于是产生了三种不同的用法:
DOS和Windows采用回车+换行(CR+LF)表示下一行
UNIX采用换行符(LF)表示下一行
MAC采用回车符(CR)表示下一行。
当在不同的系统间传递文件,就要涉及格式的转换。以下是Windwos和Unix间互相转换的操作:
可以使用Unix command tr (translate) 或 sed (Stream Editor):
USE tr TO REMOVE CR CHARACTER
tr -d '\r' < oldfile > newfile
USE sed, IN UNIX ENVIRONMENT: convert DOS newlines (CR/LF) to Unix format
sed 's/.$//' # assumes that all lines end with CR/LF
sed 's/^M$//' # in bash/tcsh, press Ctrl-V then Ctrl-M
USE sed, IN UNIX ENVIRONMENT: convert Unix newlines (LF) to DOS format
sed "s/$/`echo -e \\\r`/" # command line under ksh
sed "s/$/`echo \\\r`/" # command line under bash