Как печатать только шестнадцатеричные значения из 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-