comm或diff时:需要注意Windows/Unix文本结尾的回车符问题


Windows文件系统中的换行符是 \r\n
Apple的文件系统中的换行符是 \r
Unix的文件系统中的换行符是 \n

由于回车都是不可见的,所以commdiff之前最好先将多个不同来源的文本用换行符处理一下,否则diff出来的结果会差距很大。比较方便的是用系统自带的一些命令行工具:tr(替换)和strings(只打印可显示字符)
tr -d "\015" < A > B
strings A > B

参考文档:
在unix上用的去掉windows文件中的换行符(0x0D)的shell

作者:车东 发表于:2007-10-21 21:10 最后更新于:2007-10-24 09:10
版权声明:可以转载,转载时请务必以超链接形式标明文章 的原始出处和作者信息及本版权声明

Comments

我求你一件事呗?

就是:求你别用FeedBurner的统计啦!

每次在Reader里面点击你的文章都gfw掉了,虽然很无奈,但是你怎么也要照顾一下我们吧

/r /n应该是\r \n吧……

“比较方面的时用系统自带的”

是否是错字,还是我理解不够?

似乎一般的linux发行版里面带有dos2unix/mac2unix/unix2dos。

发表一个评论

(如果你此前从未在此 Blog 上发表过评论,则你的评论必须在 Blog 主人验证后才能显示,请你耐心等候。)

Creative Commons License
此 Blog 中的日记遵循以下授权 Creative Commons(创作共用)授权.
Powered by
Movable Type 3.36