hexdump --no-squeezing \
--length=128 \
--format='"%-4.02_ad"' \
--format='" |"' \
--format='8/1 " %02x_L[red:0xa@0-32]"' \
--format='" |"' \
--format='8/1 " %_p"' \
--format='"\n"' \
data.hexdump
The hexdump utility is a filter
which displays the specified files,
or standard input if no files are specified,
in a user-specified format.
00 | 54 68 65 20 68 65 78 64 | T h e h e x d
08 | 75 6d 70 20 75 74 69 6c | u m p u t i l
16 | 69 74 79 20 69 73 20 61 | i t y i s a
24 | 20 66 69 6c 74 65 72 0a | f i l t e r .
32 | 77 68 69 63 68 20 64 69 | w h i c h d i
40 | 73 70 6c 61 79 73 20 74 | s p l a y s t
48 | 68 65 20 73 70 65 63 69 | h e s p e c i
56 | 66 69 65 64 20 66 69 6c | f i e d f i l
64 | 65 73 2c 0a 6f 72 20 73 | e s , . o r s
72 | 74 61 6e 64 61 72 64 20 | t a n d a r d
80 | 69 6e 70 75 74 20 69 66 | i n p u t i f
88 | 20 6e 6f 20 66 69 6c 65 | n o f i l e
96 | 73 20 61 72 65 20 73 70 | s a r e s p
104 | 65 63 69 66 69 65 64 2c | e c i f i e d ,
112 | 0a 69 6e 20 61 20 75 73 | . i n a u s
120 | 65 72 2d 73 70 65 63 69 | e r - s p e c i
--no-squeezing
(-v
) отключить сжатие
По умолчанию, строка, содержащая ту же самую последовательность байт, что и предыдущая, заменяется символом „звёздочка“ (*). Таким образом, любое количество одинаковых строк как бы сжимается в одну.
Например, следующая последовательность
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
00 00 00 00
будет сокращена до двух строк
00 00 00 00
*
Эта функция удобна для нахождения иррегулярностей в преимущественно однородных данных.
Опция --no-squeezing
же служит для предотвращения подобного поведения.
--length=128
(-n
)
Взять только 128 байт из исходного файла.
--format='<строка_форматирования>'
(-e
) задать строку форматирования
Строка задается в одинарных кавычках т. к. правила форматирования внутри строки задаются в двойных кавычках. Данную опцию можно использовать несколько раз и таким образом комбинировать несколько представлений одной и той же последовательности байтов.
"%-4.02_ad"
-
Отобразить сдвиг от начала файла („_a“);
-
Использовать десятичный формат для чисел („d“);
-
Задать размер строки, равной четырём ячейкам („4.“);
-
Выровнить вывод по левому краю („-“);
-
Использовать как минимум двухзначные числа („2“);
-
Заменить нулем разряд десятков для однозначных чисел („0“).