红联Linux门户
Linux帮助

Windows与Linux之间的编码(换行符)转换

发布时间:2015-12-09 15:36:53来源:linux网站作者:张华

由于windows平台的行结束行为/r/n,而linux平台下的行结束符为/n, windows对这个不敏感,而Linux挺敏感的,所以如果不处理好这个,往往同样的代码拿到Linux平台下就运行不了。


1)对于单个文件,在Linux平台下可执行dos2unix命令转换。对于多个文件,我写了个脚本:

#!/bin/bash

find . -name '*.*" | while read i

do

dos2unix ${i} ${i}

done

值得注意的是,对于solaris平台,由于其dos2unix命令有BUG,必须加参数: -437:D

直接用  find file-path-type f-exec dos2unix{}\; 就行

若没有dos2unix命令, 可用 perl -i -pne 's/\r\n/\n/g' aa.java 代替

如在aix中:

find/opt/ibm/ae -name '*' -type f -exec perl -i -pne 's/\r\n/\n/g' {} \;


2)对于多个文件,我目前是借助于SVN,在windows提交代码时设置SVN的一个属性 svn:eol-style=native即可,这样从linux上通过   SVN下载代码后就自动转码了。


Linux Windows MAC操作系统中换行符差异:http://www.linuxdiyf.com/linux/1441.html

Linux/Unix下去除windows下换行符^M:http://www.linuxdiyf.com/linux/1028.html