dd: скопировать N первых байтов каждого блока размера M - PullRequest
1 голос
/ 24 апреля 2020

Учитывая двоичный входной файл, состоящий из блоков данных длиной 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
...