我试图清理二进制文件以删除其上的所有NULL
。任务很简单,但我发现很多文件在文件的末尾都有NULL
,我不知道是什么。我倾倒每个字节的十六进制值,我没有在任何地方看到null,但如果我做了hexdump
文件,我最后看到一个值00
,我不知道为什么....可能是EOF
,但它很奇怪,因为它并没有出现在所有文件中。这是我的脚本,非常简单,它生成100个随机二进制文件,然后按文件读取文件,char
每char
。遵循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,它提供的工具非常有限。
答案 0 :(得分:3)
尝试以下其他命令:
od -tx1 inFile
xxd inFile
hexdump
在大小为奇数字节时输出00。
似乎hexdump
没有选项就像-x
,hexdump -h
给出了选项列表; hexdump -C
也可以提供帮助。