当前位置:  开发笔记 > IOS > 正文

线端不可知差异?

如何解决《线端不可知差异?》经验,为你挑选了3个好方法。

我正在使用一些相当旧的文件.不同的程序创建了不同的文件,因此其中一些以\ r(mac)结尾,一些以\n(unix)结尾.我希望能够在这些文件上运行diff,grep等命令,但将\ r \n的命令视为一个巨行.有没有人知道一个版本的diff,grep等可以正常使用所有新行?

ETA:我也希望它们是unix实用程序,所以我可以在脚本,emacs等中使用它们......



1> Jay..:

如果使用diff -w它将忽略文件中的空格,这可能足以满足您的需求.

编辑:刚刚意识到我第一次误读了帖子,你实际上正在寻找一个可以与\r行结尾一起使用的差异.我的建议是将文件转换成可以将文件转换为标准格式的翻转文件\n.

编辑2:刚刚找到了你想要的东西 - Diff'nPatch:

Diff'nPatch是GNU'diff','patch'和'cmp'实用程序的Macintosh端口.它允许您比较和查找两个文件或文件夹之间的差异,整理两个文件,生成各种格式的差异(正常,上下文,unidiff等),应用补丁,逐字节比较文件.它可以处理任何类型的行结尾(mac,unix或windows)


对于Unix vs Dos文件,-w可以创建奇迹.谢谢!

2> UncleZeiv..:

正如杰伊所说,Diff'nPatch似乎正是你要找的.或者,您可以在单个命令中转换'\n'中所有'\ r'行结尾,如下所示:

sed -ie 's/\r/\n/' filename

要么

find . | xargs -n1 sed -ie 's/\r/\n/'

(在后一种情况下,您可能希望以某种方式过滤文件列表,或者它将应用于所有子目录中的所有文件.)



3> Karra..:

与OSX Lion捆绑在一起的diff实用程序有一个选项'strip-trailing-cr'可以实现您想要的功能.你这样使用它:

diff -cpt a.c b.c --strip-trailing-cr

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有