转载用于收藏学习,原文链接:https://blog.csdn.net/timberwolf_2012/article/details/28687477

不同操作系统,文本文件的行尾符是有区别的。

1. 各系统关于行尾符(End-of-Line)的规定   Unix每行结尾为"\n",   Windows系统每行结尾是“\r\n”,   Mac OS在 OS X以前每行结尾是"\r", 现在每行结尾是 "\n".

2. 概念区分

3. 回车与换行来历

在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。 后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

结果是,   Unix每行结尾为’\n‘, Windows系统每行结尾是“\r\n”, Mac系统每行结尾是'\r', 后果是,   Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;   Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

4. 编程相关  在Windows系统中,文本文件以" \r\n"代表换行。   用fputs等函数写换行符 ' \n'时,Windows会将 ' \n'隐式转换为"\r\n",然后再写入到文件中。   用fgets等函数读换行符 ' \n' 的时候,Windows会将文件中的"\r\n"隐式转换为'\n',然后再读到变量中。

5. 实例分析   生成一个包含换行(\n, 0x0A)和回车(\r, 0x0D)组合的文本   $ echo -en '1\n2\r\n3' > temp  十六进制方式查看文本:   $ xxd temp

Linux中查看文本:   $ xxd -r temp   $ vim temp

Windows中查看文本:

6. 不同平台间文本文件转换 编辑器实现转换。 NotePad++/Ultra Edit/Sublime Text2提供了转换功能。 用Linux命令实现转换。 Windows到Unix $ sed -e 's/.$//' mydos.txt > myunix.txt Unix到Windows $ sed -e 's/$/\r/' myunix.txt > mydos.txt 用Linux命令实现转换。 $ unix2dos filename $ dos2unix filename————————————————版权声明:本文为CSDN博主「czzshr」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/timberwolf_2012/article/details/28687477

Windows和Linux 行尾符(EndOfLine)的区别相关推荐

  1. python print 分隔符_python print 使用分隔符 或行尾符

    使用print() 函数输出数据,但是想改变默认的分隔符或者行尾符. >>> print('ACME', 50, 91.5) ACME 50 91.5 >>> pr ...

  2. python输出间隔符_python print 使用分隔符 或行尾符

    使用print() 函数输出数据,但是想改变默认的分隔符或者行尾符. >>> print('ACME', 50, 91.5) ACME 50 91.5 >>> pr ...

  3. 在Vim中将DOS行尾转换为Linux行尾

    如果打开在Windows中创建的文件,则所有行均以^M结尾. 如何一次删除所有这些字符? #1楼 tr -d '\15\32' < winfile.txt > unixfile.txt ( ...

  4. linux 行尾加字符串,linux – cat in expect脚本在字符串结尾添加新行

    我在expect脚本中有以下内容 spawn cat version expect -re 5.*.* set VERSION $expect_out(0,string) spawn rpm --ad ...

  5. windows和linux环境下的嵌入式开发区别

    主机(PC)开发差别: 在windows下写程序 1.--->打开Microsoft Visual C++ 6.0程序 2.--->关闭提示窗口(有的程序不提示) 3.--->fil ...

  6. 在python中读取文件时如何去除行末的换行符以及在Windows与Linux中的区别

    [时间]2018.11.14 [题目]在python中读取文件时如何去除行末的换行符以及在Windows与Linux中的区别 一.去除换行符 以使用readline进行读取为例: import red ...

  7. python去掉最后一行的换行符_python去掉行尾的换行符方法

    python去掉行尾的换行符方法 如下所示: mystring.strip().replace(' ', '').replace('\n', '').replace('\t', '').replace ...

  8. 《Python Cookbook 3rd》笔记(5.3):使用其他分隔符或行终止符打印

    使用其他分隔符或行终止符打印 问题 你想使用 print() 函数输出数据,但是想改变默认的分隔符或者行尾符. 解法 可以使用在 print() 函数中使用 sep 和 end 关键字参数,以你想要的 ...

  9. linux中fopen和open的区别,Linux下open与fopen的区别

    int open(const char *path, int access,int mode) path 要打开的文件路径和名称 access 访问模式,宏定义和含义如下: O_RDONLY      ...

最新文章

  1. 分数加减法_JAVA
  2. javaweb学习总结(四十三)——Filter高级开发
  3. HDU - 4280 Island Transport(最大流)
  4. php 机数,PHP实现自动刷数和“灌水”机
  5. 如何利用bat在同一个IE用多个选项卡的方式打开多个网址? 如何利用bat在同一个IE用多个选项卡的方式打开多个网址? 我的网址是这样的http://www.xags.gov.cn:8003/gga
  6. sublime3 常用功能总结
  7. Greenplum segment级问题的排查 - gp_session_role=utility (含csvlog日志格式解读)
  8. Java 创建线程的4种方式
  9. 杭电ACM求平均成绩
  10. 数据库持久化ORM框架Hibernate、JPA、Mybatis、JOOQ和JDBC Template的比较
  11. vue 初识MVC与MVVM,及其与vue基本代码之间的关系
  12. excel向下填充公式快捷键
  13. matlab表格数据合并同类项,Excel合并同一列中的同类项原来这么简单,赶紧收藏!...
  14. VirtualBox调整分分辨率
  15. VS解决方案文件格式说明
  16. github上下载nacos教程并安装
  17. 语义计算_语义多态性如何在量子计算中起作用
  18. FXCM福汇官网 fx-aisa.com外汇交易中,你必须了解的八种主流货币知识
  19. 简述运用计算机思维解决问题的步骤,计算思维能力主要包括问题及问题求解过程的符号表示、逻辑思维与抽象思维、形式化证明、建立模型和模型计算、利用计算机技术等能力 答案:√...
  20. debian安装rar

热门文章

  1. My97DatePicker无权限问题
  2. python基础-发邮件smtp
  3. root方法参考,ROOT操作
  4. 零宽度字符隐写(CTF)
  5. 如何理解 Spring Boot 中的 Starters
  6. 第6周作业1-闰年之循环判断
  7. Meterprete端口转发
  8. linux su 普通用户,linux禁止普通用户su到root用户
  9. Python爬虫||Xpath-以豆瓣电视剧为例
  10. DevExpress VCL v17.2.7全新发布|附下载