linux - 如何在 Linux 中比较两个大文件?

标签 linux file terminal

<分区>

我有两个大文件,9600000个float值是用C代码一行一行写的,我知道有相似之处,其实应该是一样的。如何比较它们,看看有没有区别? 我试过了

diff --unchanged-group-format='' base.txt base4.txt

但这不起作用,它会在屏幕上打印出第二个文件。

cmp base.txt base4.txt
base.txt base4.txt differ: byte 811221, line 62402

62402行不同是什么意思?

最佳答案

cmp 的输出意味着文件之间的第一个差异在文件中的字节位置 811221,即 62402 行.例如,如果这两个文件是:

abcd
1234
wxyz
9876

abcd
1234
wqyz
9812

输出是:

file1.txt file2.txt differ: char 12, line 3

因为在 3 行,一个文件有 x 而另一个文件有 q,它们在字节位置 12(换行符包含在字节数中)。

如果您想查看所有差异,请使用 -l 选项。

$ cmp -l file1.txt file2.txt
12 170 161
18  67  61
19  66  62

请注意,与 diff 不同,这在插入和删除方面并不智能,它只是比较每个位置的每个字节。因此,如果您在文件的前面插入或删除一个字符,则之后的所有内容都将显示为不匹配。

关于linux - 如何在 Linux 中比较两个大文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36270264/

相关文章:

linux - 将输入文件解析为环境变量

testing - 制作大型测试文件的好方法是什么?

macos - Apple 听写 - 在应用程序中使用

terminal - 来自终端的命令 "subl"不起作用

linux - 从主机网络浏览器访问驻留在 Docker 容器内的 apache2

c++ - 跨 32 和 64 链接到静态 glib-2.0 库

linux - 如何将 QSetting::NativeFormat 转换为 QSetting::IniFormat?

python - 读取后删除文件

c - 当用户输入数字时如何打印文件中的特定行

mysql - 在终端上自动化 MYSQL CREATE DATABASE