如何在Linux中处理二进制数据

如何在Linux中处理二进制数据

我的一台服务器为我提供了带有 的数据Content-Type: application/binary,即我得到的数据看起来像一些外星数据。

现在我需要将该数据转换为纯数据,但我不知道有什么方法可以做到这一点。我正在尝试使用命令行来执行此操作。

谷歌搜索后,我找到了一种方法:我需要从数据中删除前 10 个字符和最后 8 个字符,然后使用gunzip它。然后我会得到原始数据。但是当我尝试删除这些字符时,因为它是二进制输出,所以它会删除更多或少于 10+8 个字符。

实际上echo无法正确打印数据。那么,请问有人知道如何处理二进制数据吗?

答案1

你问的是什么很不清楚。你的文件是什么格式?压缩文件?档案?压缩档案 ?命令是什么

file yourfilename

给出作为输出?由于它是二进制数据,您想删除 octect 、 bit 吗?

要删除二进制文件,您应该考虑使用dd 命令

dd if=input.bin of=output.bin bs=1 skip=X count=Y

其中 X 是要从开头删除的字节数,Y 是要在文件末尾之前处理的字节数。

假设您有一个大小为 100 字节的二进制文件,并且您想要删除前 10 字节和后 5 字节,获得 85 字节的输出。 X 的值为 10,Y 的值为 85 (=100-10-5)。您可以使用简单的“ls”或“wc -c”命令查找文件大小。

祝你好运

答案2

后面的字符可以忽略,你可能只会得到一个警告,所以问题已经解决了一半,所以让我们看看前 10 个。

现在这个问题可以用dd来解决。我们需要做的就是告诉它跳过一个 10 字节的块。wget -o - http://example.com/sample-data |dd ibs=10 skip=1 of=data.zip; unzip data.zip

相关内容