首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在文件末尾添加了空(\0)

在文件末尾添加了空(\0)
EN

Stack Overflow用户
提问于 2017-06-13 18:44:21
回答 0查看 505关注 0票数 0

我正在尝试清理一个二进制文件,以删除其上的所有NULL。这个任务很简单,但是我发现很多文件的末尾都有一个NULL,我不知道是什么。我正在转储每个字节的十六进制值,我在任何地方都看不到null,但是如果我对文件执行hexdump,我会在最后看到一个值00,我不知道为什么……可能它是一个EOF,但它很奇怪,因为它并不是出现在所有的文件中。这是我的脚本,非常简单,它生成100个随机的二进制文件,然后读取每个文件的文件,每个charchar。根据bash不会在变量上存储NULL的前提,在将其存储在变量上之后重写char可以避免NULL,但没有...

代码语言:javascript
复制
#!/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

代码语言:javascript
复制
00003c0 0b12 a42b cb50 2a90 1fd6 a4f9 89b4 ddb6
00003d0 3fa3 eb7e 00c4

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

有什么线索吗?

编辑:忘了提一下,我运行这个程序的机器类似于raspberry pi,它提供的工具非常有限。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44519276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档