Tag: diff

如何检查diff命令失败的原因?

我正在运行diff –brief -r /home/mateusz/ /media/mateusz/Database/backup_test_tmp_folder/home/mateusz/ command,其中包含错误代码2.根据文档“如果输入相同,退出状态为0,1如果不同,2如果有问题。“ 不幸的是,命令退出而没有给出任何线索为什么它失败了。 我尝试使用straces但不幸的是我无法根据生产的日志诊断任何东西(最后150行的3.5GB strace文件发布到https://gist.github.com/matkoniecz/15ed855bd3f161ad6354c7d637234804 – 以及与sudo运行的差异产生78KB的strace log后失败了。 我考虑修改diff命令以在死亡和返回2之前输出一些解释,但鉴于我的程序不太可能缺乏对这种调试的支持似乎表明有更好的解决方案(希望它不是“学习如何解释” strace的“)。 那么我应该如何检查为什么我的diff命令失败了? 是否有比strace更好的工具或者为diff命令添加printf调试?

两个大文件的区别

我有“test1.csv”,它包含 200,400,600,800 100,300,500,700 50,25,125,310 和test2.csv,它包含 100,4,2,1,7 200,400,600,800 21,22,23,24,25 50,25,125,310 50,25,700,5 现在 diff test2.csv test1.csv > result.csv 不同于 diff test1.csv test2.csv > result.csv 我不知道哪个是正确的顺序,但我想要别的东西,上面的两个命令都会输出类似的东西 2 > 100,4,2,1,7 3 2,3c3,5 4 < 100,300,500,700 5 21,22,23,24,25 9 > 50,25,125,310 我想只输出差异,因此results.csv应该是这样的 100,300,500,700 100,4,2,1,7 21,22,23,24,25 50,25,700,5 我尝试了diff -q和diff -s但他们没有做到这一点。 顺序无关紧要,重要的是我只想看到差异,没有>也不是空白。 grep -FvF在较小的文件上做了伎俩而不是在大文件上 第一个文件包含超过500万行,第二个文件包含1300个。 所以results.csv应该会产生~4,998,700行 我也尝试过grep -F -x -v -f ,它不起作用。

简单的diff命令输出

我已经看过很多使用diff命令的例子,但没有详细介绍它的基本用法。 这是我想要使用的两个文件的内容: cat -A file1.txt a$ b$ c$ d$ cat -A file2.txt b$ c$ d$ e$ 如果我像这样使用diff命令: diff file1.txt file2.txt 我明白了: 1d0 e 我想知道的是除了小于和大于符号之外,1d0中的第1行和第0行以及4a4中的第4和第4行是什么意思。 更一般地说,为什么在a之前有一个小于符号而不是大于符号? 有什么不同?

如何用Nautilus“区分”两个文件?

我已经安装了Meld,发现它是一个很棒的比较工具。 不幸的是,没有与Nautilus 3.2集成。 这意味着,我无法右键单击文件并选择一个选项以在Meld中打开它们进行比较。 我在工具评论中看到该工具需要安装diff-ext软件包。 这个包已经从Ubuntu宇宙中删除了,我猜是因为gtk 3.0。 即使我手动从源代码下载伪造diff-ext包,当我尝试配置它时,检查失败并显示以下消息: checking for DIFF_EXT… configure: error: Package requirements (libnautilus-extension >= 2.14.0 gconf-2.0 >= 2.14.0 gnome-vfs-module-2.0 >= 2.14) were not met: No package ‘libnautilus-extension’ found No package ‘gconf-2.0’ found No package ‘gnome-vfs-module-2.0’ found 好的,所以从这个输出我收集到确实需要gtk 2来安装diff扩展到nautilus。 现在,我的问题是:是否有可能将Meld整合到Nautilus? 或者,还有其他基于差异的工具与现有的Nautilus集成吗? 所以基于gtk3。 如果到目前为止有任何疑问,我正在使用Ubuntu 11.10。