作者:80后之多管闲事 | 来源:互联网 | 2017-11-11 13:36
从windows转到linux,以前写的一些脚本程序需要对换行符进行转换之后才能正常运行。
转换的方法其实很简单:
sed -e 's/\r//g' old_file > new_file
就可以了
windows中的换行符是\r\n,linux/unix下是\n。其中\r=0x0d代表回车,\n=0x0a代表换行。
早期的计算机输出设备不是显示器,而是电传打字机,结构与普通的打字机差不多。有一个打印头在纸上打字,同时有一个电动机控制纸张的进出。当打印头到达行尾的时候,需要两个动作才能够到达下一行的行首:首先执行回车动作,将打印头移动到本行的行首,然后进行换行动作,电动机将纸张向上移动一行,这样打印头就处于下一行的行首,可以继续进行打印。回车和换行对应的控制字符分别是\r和\n,这就是windows中换行符为\r\n的由来。后来由于经常连续执行,所以在打印机中将这两个控制字符简化为一个控制字符,这就是linux/unix中的换行符\n的由来。
以前苹果机的换行符是\r,后来苹果的操作系统mac os x使用的freebsd和mach的内核,这两者都是unix类别的操作系统,所以现在的mac os x中的换行符可能是\n(猜测)。