不同平台windows、linux、mac 上换行符的问题
2017-01-07 00:54
483 查看
原文链接
0.01 不同平台上换行符的问题
1,不同平台对换行符的制定不同
windows <回车换行> (carriage return AND line feed) “\n\r” CRLF
Unix系统 <换行> (carriage return) “\n” CR
window unix mac 等平台,换行符的不同:系统 | 换行符 |
---|---|
windows | \n\r |
unix | \n |
mac | \r |
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 文件 (适用与对文件夹所有文件进行转化)1
2
3
4
1
2
3
4
unix ->windows :
在window 平台适用 UltraEdit 和 EditPlus 等工具的 可以设置换行模式进行自动转化
或者在unix 平台中使用命令:
1, cat a.txt | sed 's/\n/\r\n/g' 2, unix2dos 文件 (适用与对文件夹所有文件进行转化)1
2
1
2
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 false1
2
3
4
5
1
2
3
4
5
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 warn1
2
3
4
5
6
1
2
3
4
5
6
相关文章推荐
- 不同平台windows、linux、mac 上换行符的问题
- 不同平台windows、linux、mac 上换行符的问题
- [C] 跨平台使用TCHAR——让Linux等平台也支持tchar.h,解决跨平台时的格式控制字符问题,多国语言的同时显示(兼容vc/gcc/bcb,支持Windows/Linux/Mac)
- Linux/Mac/Windows换行符及对'\r'和'\n'的不同处理
- [C] 跨平台使用TCHAR——让Linux等平台也支持tchar.h,解决跨平台时的格式控制字符问题,多国语言的同时显示(兼容vc/gcc/bcb,支持Windows/Linux/Mac)
- Windows、Unix、Mac不同操作系统的换行问题 回车符\r和换行符\n
- Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\n
- [C] 跨平台使用TCHAR——让Linux等平台也支持tchar.h,解决跨平台时的格式控制字符问题,多国语言的同时显示(兼容vc/gcc/bcb,支持Windows/Linux/Mac)
- Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\
- Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\n
- Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\n
- Apache Nutch源码工程在Linux和Windows平台换行符差异问题处理
- Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\n
- Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\n
- Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\n
- Linux和windows中的换行符差异问题
- MyEclipse 9.1 在windows ,Linux ,MacOSX的破解,并解决myeclipse 9.1 在Linux自动退出问题
- linux代码移植到vs下使用,不同平台代码移植问题
- 在不同平台获取机器名(windows or linux)
- Windows、Mac和Linux平台下的18个优秀IDE