首页 > 解决方案 > dd:复制每个 M 大小块的 N 个首字节

问题描述

给定一个由 N 字节长的数据块组成的二进制输入文件,如何使用 提取每个块的前 M 个字节dd

例如,当 M=10 和 N=8 时,数据可能如下所示:

$ M=10
$ head -c $(( M * 5 )) /dev/urandom \
  | tee inputfile.bin \
  | hexdump -e '"%07.7_Ax\n"' -e "\"%07.7_ax \" ${M}/1 \"%02x \" \"\n\""
0000000 c0 07 5d 59 dc 03 2e 38 49 c4
000000a ca ad 44 6d 09 61 2b 6c 7c ba
0000014 c4 96 c6 73 8b ed 42 cf d9 9c
000001e 49 b7 bb ea 32 dc 35 6a 5c d8
0000028 55 15 a0 aa d5 aa 60 2c 30 de
0000032

我想从输入中提取这个:

$ N=8
$ hexdump -e '"%07.7_Ax\n"' -e "\"%07.7_ax \" ${N}/1 \"%02x \" \"\n\"" output.bin
0000000 c0 07 5d 59 dc 03 2e 38
0000008 ca ad 44 6d 09 61 2b 6c
0000010 c4 96 c6 73 8b ed 42 cf
0000018 49 b7 bb ea 32 dc 35 6a
0000020 55 15 a0 aa d5 aa 60 2c
0000028

标签: shdd

解决方案


推荐阅读