кажется, что формат по умолчанию получается таким образом:
hexdump -e '"%07.7_Ax\n"' -e '"%07.7_ax " 8/2 "%04x " "\n"'
От man hexdump
:
Implement the -x option:
"%07.7_Ax\n"
"%07.7_ax " 8/2 "%04x " "\n"
Если вы хотите, чтобы понять формат hexdump
«s, Вы должны будете прочитать инструкцию, но вот короткая прогулка по предыдущему формату:
Первая часть %07.7_Ax\n
- это та часть, которая отображает последнюю строку, содержащую только смещение. За руководство:
_a[dox] Display the input offset, cumulative across input files, of the
next byte to be displayed. The appended characters d, o, and x
specify the display base as decimal, octal or hexadecimal
respectively.
_A[dox] Identical to the _a conversion string except that it is only
performed once, when all of the input data has been processed.
- Для второй: мы теперь понимаем
"%07.7_ax "
часть. 8/2
означает 8 итераций и 2 байта для следующих, а именно, "%04x "
. Наконец, после этого у нас есть новая строка: "\n"
.
Я не совсем уверен, как вы хотите, чтобы ваши 21 байт, может быть, это будет делать:
hexdump -e '"%07.7_Ax\n"' -e '"%07.7_ax " 21/1 "%02x " "\n"'
и вы знаете, как избавиться от смещения, если это необходимо:
hexdump -e '21/1 "%02x " "\n"'
Вы можете попробовать этот 'hexdump -e '21/1"% 02x "" \ n "'' –
@gniourf_gniourf, он работает! Спасибо. –
Пожалуйста, найдите ответ, который также содержит информацию о формате по умолчанию. –