Как печатать только шестнадцатеричные значения из hexdump без номеров строк или таблицы ASCII?

после Преобразование десятичной в шестнадцатеричную в оболочке UNIX script

Я пытаюсь напечатать только hex values из hexdump, т.е. не печатать номера строк и таблицу ASCII.

Но следующая командная строка ничего не печатает:

hexdump -n 50 -Cs 10 file.bin |  awk '{for(i=NF-17; i>2; --i) print $i}'

Ответ 1

Вы можете указать точный формат, который вы хотите использовать hexdump для вывода, но это немного сложно. Здесь вывод по умолчанию, минус смещения файла:

hexdump -e '16/1 "%02x " "\n"' file.bin

(Для меня похоже, что это приведет к созданию дополнительного конечного пространства в конце каждой строки, но по какой-то причине это не так.)

Ответ 2

Использование xxd лучше для этого задания:

xxd -p -l 50 -seek 10 file.bin

От man xxd:

-p | -ps | -postscript | -plain
    output in postscript continuous hexdump style. Also known as plain hexdump style.

-l len | -len len
    stop after writing <len> octets.

Ответ 3

В качестве альтернативы рассмотрим использование xxd -p file.bin.

Ответ 4

Прежде всего, удалите -C, который испускает информацию ascii.

Затем вы можете сбросить смещение с помощью

hexdump -n 50 -s 10 file.bin | cut -c 9-