0.01 不同平台上换行符的问题

1,不同平台对换行符的制定不同

windows <回车换行> (carriage return AND line feed) “\n\r” CRLF

Unix系统 <换行> (carriage return) “\n” CR

window unix mac 等平台,换行符的不同:

2,由于换行符的不同,在不同系统之间传递文件产生的问题

1,文本显示问题,windows 下的文件在linux 下会产生 ^M 符号,而 linux 下创建编辑的文件 在windows 下会显示成一行;(edit plus 等软件可以很好区分除外)
2,window 下写的shell脚本不能再linux下执行了(shell 解释器对用换行符作为一个命令的提交)
3,影响版本控制软件呢的检入检出,(git对于工作空间和版本库中换行符有转换控制)产生一些无用的文件差异(git diff),尤其在多人协作中,每个人设置的换行符模式不同。
3,有时产生莫名其妙的问题,如果找不到原因,应该怀疑下是不是换行符的问题;

3,不同平台换行符的转化

windows -> unix :
1,用unix 平台的命令工具:

1. cat a.txt | tr -d "^M" > b.txt
2. cat a.txt | sed 's/^M//g'
3. vim 中执行sed 命令替换 ( :^,$ s/^m//g ;or :s/\r//g; )
4. dos2unix 文件 (适用与对文件夹所有文件进行转化)

unix ->windows :
在window 平台适用 UltraEdit 和 EditPlus 等工具的 可以设置换行模式进行自动转化

或者在unix 平台中使用命令:

1. cat a.txt | sed 's/\n/\r\n/g'
2. unix2dos 文件 (适用与对文件夹所有文件进行转化)

4,在开发方面如何避免换行问题

1,ide 中像设置编码一样,强制在工程工作区间级别设置文件换行 为linux 风格(设置为linux 风格的主要原因是有利与使用git少出错,有洁癖的想法是 还能省\r 这一个字节的内容消耗,那个文件没有换行? 总体来看是个划算的做法:})
eclipse 中,Windows -> Preference -> General -> workspace:

idea 中 ,
1,File->Settings…(Ctrl+Alt+S)
2,Editor->Code Style 里面的Line separator(for new files): 选择Unix and OS X(\n)

2,gitbash 中设置默认检入检出换行符为linux(\n)风格:(为了团队更好的协作)
1,开启自动换行

     [a@b]$ git config --global core.autocrlf true

#签出时将换行符转换成CRLF,签入时转换回 LF。  git config --global core.autocrlf true
#签出时不转换换行符,签入时转换回 LF git config --global core.autocrlf input
#签出签入均不转换 git config --global core.autocrlf false

2,开启安全换行

    [a@b]$ git config --global core.safecrlf true
解释:
如果你把换行符搞乱了,在一个文件中既包含windows风格的换行符也包含unix风格换行符,那么 safecrlf 就可以发挥作用了:
#拒绝提交包含混合换行符的文件 git config --global core.safecrlf true
#允许提交包含混合换行符的文件 git config --global core.safecrlf false
#提交包含混合换行符的文件时候给出警示 git config --global core.safecrlf warn

git在不同平台windows、linux、mac 上换行符的问题的更多相关文章

  1. 不同平台windows、linux、mac 上换行符的问题

    http://blog.chinaunix.net/uid-26748613-id-3179595.html?page=2 https://blog.csdn.net/changruihe/artic ...

  2. 体验CoreCLR的stack unwinding特性在Linux/Mac上的初步实现

    有了stack unwinding特性,才能在.NET程序中获取调用堆栈(call stack)信息,才能在异常时显示调用堆栈信息.这个特性之前只在Windows上有实现,Linux/Mac上的实现最 ...

  3. Linux- 关于windows和Linux和Mac的换行符

    windows 的换行符为"\r\n" Linux的换行符为"\n" Mac的换行符为"\n\r",和Windows相反

  4. windows下回车与换行符

    windows下回车与换行符 从键盘输入的数据一般是ASCII码,也就是文本文件,在送到计算机内存时,回车和换行符转换成一个换行符(也就是说回车和换行符在windows文本中是两个字符),再从内存中以 ...

  5. windows下sed回车换行符处理

    windows下sed回车换行符处理如果用sed for windows对整个文件进行了编辑,编辑之后一般需要处理回车换行符:rem windows的回车换行符是\r\n,linux的是\n,所以要替 ...

  6. 让你的Windows/Linux玩上Switch!

    1 前言 某天在Github上面看到了两个Switch的模拟器: yuzu Ryujinx 于是就想动手想尝试一下在Linux上面玩上Switch. 本文首先简单介绍一下两个模拟器,接着是两个模拟器的 ...

  7. IDA Pro Disassembler 6.8.15.413 (Windows, Linux, Mac)

    IDA: What's new in 6.8 Highlights This is mainly a maintenance release, so our focus was on fixing b ...

  8. windows和liunx下换行符问题

    区别 windows换行符是: \r\n liunx换行符是: \n 问题 程序处理的时候就会有问题,因为在Windows的文件多了一个\r 解决办法(转换文件格式) vim file :set fi ...

  9. Mysql跨平台(Windows,Linux,Mac)使用与安装

    MySQL其实是一个跨平台的轻量级数据库,平时开发会用到很多.有写程序可能要跨平台开发,接下来我就介绍一下如何跨平台使用Mysql. 这里所谓的跨平台就是Windows,Linux,Mac共同用一套M ...

随机推荐

  1. <HBase><读写><LSM>

    Overview HBase中的一个big table,首先会按行划分成一些region(这些region之间是有序的,由startkey保证),每个region分配到不同的节点进行存储.因此,reg ...

  2. shelly - HYMN TO INTELLECTUAL BEAUTY

    HYMN TO INTELLECTUAL BEAUTY III No voice from some sublimer world hath ever ⁠To sage or poet these r ...

  3. python-oop的理解

    OOP是面向对象编程,特征分别是封装.继承.多态.抽象. 封装:封装是指将对象信息状态通过访问权限修饰符隐藏在对象内部,不允许外部程序直接访问,如果外部程序要访问对象内部,可以调用内部提供的get或s ...

  4. mysql数据库负载均衡

    负载均衡集群是有一组相互独立的计算机系统构成,通过常规网络或专用网络进行链接,有路由器衔接在一起,各个节点相互协作,共同负载.均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器. 实 ...

  5. Kaggle(2):验证和过分拟合

    目前看来,随机森林是比较常用且有效的分类算法.以下先简要介绍python中随机森林的使用方法,然后谈谈分类结果的准确度验证和过拟合等两个重要问题. 1.随机森林的参数 在Scikit learn中使用 ...

  6. 转:openwrt 框架分析

    本文是本人对OpenWrt的Makefile的理解,并非转载.OpenWrt是一个典型的嵌入式Linux工程,了解OpenWrt的Makefile的工作过程对提高嵌入式Linux工程的开发能力有极其重 ...

  7. HTML Viewer展示不同字体

    过去有相关帖子提到Power BI可以使用不同字体.小悦也最近也找了一些方法尝试.如果大家想要在Power BI展示更多类型的字体,可以使用HTML Viewer自定义控件,增加额外的字体.大家可以利 ...

  8. python3.6升级

    Ubuntu 14.04 and 16.04 If you are using Ubuntu 14.04 or 16.04, you can use Felix Krull's deadsnakes ...

  9. 2017青岛赛区网络赛 Smallest Minimum Cut 求最小割的最小割边数

    先最大流跑一遍 在残存网络上把满流边容量+1 非满流边容量设为无穷大 在进行一次最大流即可 (这里的边都不包括建图时用于反悔的反向边) #include<cstdio> #include& ...

  10. 卸载Mariadb-报错

    1. rpm -qa|grep aria MariaDB-client-10.1.22-1.x86_64MariaDB-devel-10.1.22-1.x86_64MariaDB-shared-10. ...