文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Window 和 Linux 下的回车换行不文本文件格式

Window 和 Linux 下的回车换行不文本文件格式

时间:2010-11-11  来源:RocZhang

 简单的说,window文件换行是 “/r/n”, 而Linux文件的换行是 “/n”, 所以将文件从window 下直接复制到 Linux 和就有问题。 用vim 打开挥发现 ^M 的字符在每一行尾。

 但是好多软件,会直接去处理这些区别。 比如notepad++, 会打开文件如果发现是“/r” 或者是“/r/n” 都会显示新行。 perforce 也对此有处理,比如先将文件从window下提交到perforce,然后再从perforce同步到Linux/Unix平台下, perforce 会自动转换“/r/n” 到“/n“;反之,文件从Linux提交到perforce, 在同步到Windows, 这是perforce把“/n” 转换为“/r/n”。

 

因为这些软件处理不同平台下的回车换行不同,所以我们很少注意到。 但是有时候问题就出现在这看不见的回车换行符里面。那么怎么检查?

用二进制去查看这些文件,可以方便查看不用。 比如: vim 下 %!xdd 打开查看。

 

 下面一个查看二进制的例子来源于http://www.cnblogs.com/killkill/archive/2010/06/23/1763785.html

 

首先创建一个二进制文件:

 
1 [oracle@logserver tmp]$ echo -n "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz" > test.bin 
2 [oracle@logserver tmp]$ cat test.bin 
3 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz[oracle@logserver tmp]$

注意echo 一定要跟上 -n 选项,否则会被自动加上一个换行行,再用vim打开 test.bin

view source print?
1 [oracle@logserver tmp]$ vim -b test.bin

vim 的 -b 选项是告诉 vim 打开的是一个二进制文件,不指定的话,会在后面加上 0x0a ,即一个换行符。

在命令模式下键入:

view source print?
1 :%!xxd

如果 vim 后面没有加 -b 选项就会出现可恶的 0x0a:

如果有 -b 选项就不会有这种情况:

然后进入编辑模式改,改就是了,我将A、B对应的41、42改成61、62,将a、b对应的61、62改成41、42。

回到命令模式输入:

view source print?
1 :%!xxd -r

此时可以发现AB和ab的位置互换了。

最后在命令模式中输入 :wq 保存退出即可。

 

 

 

 

了解这些区别,用适当的工具去查看,这样可以快速排除或者定位问题。

 

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载