dd命令获取特定范围的数据

Aas*_*war 2 dd

dd命令中,我们可以使用skip跳过文件中的 n 个字节。从第 n 个字节到文件末尾被复制。但我只想将二进制数据从 1228 复制到 1331。我如何dd在 Linux 上实现这一点?

ica*_*rus 6

使用count指定要复制的字节数。使用外壳进行计算。用于ibs=1将输入块大小设置为 1,因此skipcount以字节为单位指定。

 dd ibs=1 skip=1228 count=$((1331-1228+1))
Run Code Online (Sandbox Code Playgroud)

由于 1228 和 1331-1228+1 都是 4 的倍数,因此可以将输入块大小设置为 4,这将提高效率,但除非大量使用,否则优化将丢失在喧嚣中。其他诸如预计算结果之类的事情1331-1228+1应该首先完成。

 dd ibs=4 skip=$((1228/4)) count=$(((1331-1228+1)/4))
Run Code Online (Sandbox Code Playgroud)