我正在这样做cmp -l file.bin file2.bin
,但开始得到cmp: EOF 文件和可疑的 Windows/Linux 行尾问题,如此处所述。我应该按一些顺序拆分二进制数据,所以我做了一些分析。我注意到这个问题只是关于我的一些大小为 1GB 的文件。
输出自od -c file.bin
0435500 \n <A5> \n Y \n f \n p \n <A9> \n A \n W \n 202
0435520 \n <B0> \n M \n t \n 202 \n <B1> \n i \n i \n 227
0435540 \n 221 \n Y \n ; \n <B2> \n 225 \n < \n J \n 217
0435560 \n <A9> \n < \n 211 \n <AB> \n 201 \n T \n y \n 204
0435600 \n 212 \n \ \n v \n p \n | \n 9 \n M \n u
0435620 \n 214 \n < \n r \n <A0> \n <AF> \n X \n W \n 204
0435640 \n <A5> \n B \n a \n 207 \n <AA> \n S \n ^ \n |
0435660 004 \r \n > 003 <ED> 003 <E8> \f . 003 <EC> \f * 004 032
0435700 \f h \f m \f i \f h \n o 004 024 \n k \n <A5>
0435720 \n <A2> \n = \n k \n p \n <B1> \n I \n ^ \n y
0435740 \n 227 \n < \n T \n | \n 224 \n 8 \n w \n 202
您\r \n
在第 0435660 行看到一个输出。总共,11 matches on 11 lines
当 60 个字符的总行数为 0571520 时。因此,Windows 行尾似乎占文件内容的 0.001%,这比正常情况下要小得多。只是,少数文件有这个问题,而原始数据源没有。这表明我这是数据处理中的一个问题。这足以确认这些结尾是 Windows 行结尾吗?
我的文件包含每个应该具有固定长度的事件。所以我不确定dos2unix
这里的效果如何,因为我无法更改活动的长度。我想我需要删除那些具有 Windows 行尾的事件或将 Windows EOF 替换\r\n
为\0\n
. 但是,我不确定是否可以通过将文字字符串添加到内容中而不改变某些事件的长度来做到这一点。情况是如果我更改某些事件的长度,系统就会停止工作。
如何处理二进制数据中的 Windows/Unix EOF 警告?