【发布时间】:2009-08-13 15:21:40
【问题描述】:
我正在尝试将一个二进制文件中的一个块复制到一个新文件中。我有我想要抓取的块的字节偏移量和长度。
我曾尝试使用dd 实用程序,但这似乎会读取并丢弃数据直到偏移量,而不仅仅是寻找(我猜是因为dd 用于复制/转换数据块)。这使得它非常慢(偏移量越高越慢)。这是我试过的命令:
dd if=inputfile ibs=1 skip=$offset count=$datalength of=outputfile
我想我可以编写一个小的 Perl/Python/任何脚本来打开文件,寻找偏移量,然后以块的形式读取和写入所需的数据量。
是否有支持此类功能的实用程序?
【问题讨论】:
-
我刚刚尝试在 dd 上运行
strace,它使用了 llseek。 -
啊,我在 freebsd 上,所以也许这是一个不同的实现。也许它很慢,因为我将输入缓冲区大小设置为 1 字节。