gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:04:55 24 4
gpt4 key购买 nike

我正在尝试清理二进制文件以删除所有 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

我也试过:

tr '\000' <inFile > outfile

但结果相同。

这就是 hexdump 的样子有这个问题的文件之一

00003c0 0b12 a42b cb50 2a90 1fd6 a4f9 89b4 ddb6
00003d0 3fa3 eb7e 00c4

c4应该是最后一个字节,但如您所见,有一个 00那里....

有什么线索吗?

编辑:忘了说我运行它的机器类似于树莓派,它提供的工具非常有限。

最佳答案

尝试这些其他命令:

od -tx1 inFile

xxd inFile

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

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

关于linux - 在文件末尾添加 NULL (\0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44519276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com