在文件末尾添加NULL(\ 0)

时间:2017-06-13 10:44:21

标签: linux bash binaryfiles

我试图清理二进制文件以删除其上的所有NULL。任务很简单,但我发现很多文件在文件的末尾都有NULL,我不知道是什么。我倾倒每个字节的十六进制值,我没有在任何地方看到null,但如果我做了hexdump文件,我最后看到一个值00,我不知道为什么....可能是EOF,但它很奇怪,因为它并没有出现在所有文件中。这是我的脚本,非常简单,它生成100个随机二进制文件,然后按文件读取文件,charchar。遵循bash不会存储NULL变量的前提,在将char存储在变量上后重写NULL将避免#!/bin/bash for i in $(seq 0 100) do echo "$i %" time dd if=/dev/urandom of=$i bs=1 count=1000 while read -r -n 1 c; do echo -n "$c" >> temp done < $i mv temp $i done &#39} ,但没有......

tr '\000' <inFile > outfile

我也尝试过:

hexdump

但结果相同。

这是查看具有此问题的文件的00003c0 0b12 a42b cb50 2a90 1fd6 a4f9 89b4 ddb6 00003d0 3fa3 eb7e 00c4

的方式
c4

00应该是最后一个字节,但是你可以看到,那里有Observable.forkJoin(observables) .subscribe( success => { //code }, error => console.log('error')); } ......

有任何线索吗?

编辑: 忘记提到我运行它的机器类似于覆盆子pi,它提供的工具非常有限。

1 个答案:

答案 0 :(得分:3)

尝试以下其他命令:

od -tx1 inFile

xxd inFile

hexdump在大小为奇数字节时输出00。

似乎hexdump没有选项就像-xhexdump -h给出了选项列表; hexdump -C也可以提供帮助。