hexdump, hd -- ASCII, десятичный, шестнадцатеричный и восьмеричный дамп

Версия для печатиОтправить другуPDF version
HEXDUMP(1)            Справочник основных команд FreeBSD            HEXDUMP(1)

НАЗВАНИЕ
     hexdump, hd -- ASCII, десятичный, шестнадцатеричный и восьмеричный дамп
СИНТАКСИС
     hexdump [-bcCdovx] [-e строка_формата] [-f файл_форматов] [-n длина]
             [-s смещение] файл ...
     hd [-bcdovx] [-e строка_формата] [-f файл_форматов] [-n длина]
             [-s смещение] файл ...

ОПИСАНИЕ
     Утилита hexdump является фильтром, который преобразует указанные файлы
     или файл стандартного ввода, если файлы не указаны, в заданном пользова-
     телем формате.
     Используются следующие параметры:

     -b      Побайтовый вывод в восьмеричном представлении.  Построчный вывод
             входной информации по шестнадцать байт через пробел в трехсим-
             вольном восьмеричном представлении с дополнением начальными
             нулями и выводом в начале строки значения смещения в шестнадцате-
             ричном виде.
     -c      Побайтовый вывод в символьном представлении.  Построчный вывод
             входной информации по шестнадцать символов через пробел в трех-
             знаковом символьном представлении с дополнением начальными пробе-
             лами и выводом в начале строки значения смещения в шестнадцате-
             ричном виде.

     -C      Канонический вывод в формате hex+ASCII.  Построчный вывод входной
             информации по шестнадцать байт через пробел в двузнаковом шестна-
             дцатеричном представлении, за которыми следуют те же самые шест-
             надцать байт в формате %_p, заключенные в символы ``|'', и выво-
             дом в начале строки значения смещения в шестнадцатеричном виде.
             Вызов команды hd равносилен применению этого параметра.

     -d      Вывод в десятичном представлении по два байта.  Построчный вывод
             входной информации по восемь двухбайтовых блоков через пробел в
             пятизнаковом десятичном представлении без знака с дополнением
             начальными нулями и выводом в начале строки значения смещения в
             шестнадцатеричном виде.
     -e строка_формата
             Задание строки формата, используемого для вывода данных.

     -f файл_форматов
             Задание файла, который содержит одну или большее число форматных
             строк, разделенных символами новой строки.  Пустые строки и
             строки, в которых первый непустой символ является хэш-символом
             (#), игнорируются.
     -n длина
             Преобразовать только длина байт входной информации.

     -o      Вывод в восьмеричном представлении по два байта.  Построчный
             вывод входной информации по восемь двухбайтовых блоков через про-
             бел в шестизнаковом восьмеричном представлении с дополнением
             начальными нулями и выводом в начале строки значения смещения в
             шестнадцатеричном виде.
     -s смещение
             Пропустить смещение байт с начала входного потока.  По умолчанию
             смещение воспринимается как десятичное число.  С начальным симво-
             лом 0x или 0X смещение интерпретируется как шестнадцатеричное
             число, если же начальным символом является 0, то смещение счита-
             ется восьмеричным числом.  Добавление символов b, k или m к зна-
             чению смещение приводит к его умножению на 512, 1024 или 1048576
             соответственно.

     -v      Указывает hexdump на принудительный вывод всех данных.  Без пара-
             метра -v любая последовательность выходных строк, идентичных
             непосредственно предшествующей последовательности выходных строк
             (кроме значений смещений), заменяется строкой из одинарной звез-
             дочки.
     -x      Вывод в шестнадцатеричном представлении по два байта.  Построчный
             вывод входной информации по восемь двухбайтовых блоков через про-
             бел в четырехзнаковом шестнадцатеричном представлении с дополне-
             нием начальными нулями и выводом в начале строки значения смеще-
             ния в шестнадцатеричном виде.

     Для каждой входной строки hexdump последовательно копирует входной поток
     на стандартный вывод, преобразуя данные согласно форматным строкам, ука-
     занным в опциях -e и -f, в том порядке, в котором они были перечислены.
   Форматы
     Форматная строка содержит любое количество форматных блоков, разделенных
     пробелами.  Форматный блок состоит максимум из трех составляющих: счет-
     чика повторений, счетчика байтов и идентификатора формата.

     Счетчик повторений является необязательным положительным целым числом,
     которое по умолчанию равно единице.  Каждый форматный блок применяется
     заданное количество раз, указываемое счетчиком повторений.
     Счетчик байтов является необязательным положительным целым числом.  Если
     указано, то оно определяет количество байт, которые будут преобразовы-
     ваться при каждым применении форматного блока.

     Если указаны счетчик повторений и/или счетчик байтов, то после счетчика
     повторений и/или перед счетчиком байтов для устранения неоднозначности их
     интерпретации должен ставиться символ слэша.  Пробелы перед или после
     символа слэша игнорируются.
     Идентификатор формата указывается обязательно и должен выделяться симво-
     лами двойных кавычек (" ").  Он интерпретируется как форматная строка в
     стиле fprintf (смотри fprintf(3)) со следующими исключениями:

              Звездочка (*) не может использоваться в качестве ширины поля
               или точности.
              Счетчик байтов или ширина поля обязательны для каждого символа
               преобразования ``s'' (в отличие от fprintf(3), что выдает по
               умолчанию всю строку, если ширина не указана).

              Символы преобразования ``h'', ``l'', ``n'', ``p'' и ``q'' не
               поддерживаются.
              Поддерживаются следующие односимвольные esc-последовательности,
               описанные в стандарте языка C:

                     NUL                  \0
                     <alert character>    \a
                     <backspace>          \b
                     <form-feed>          \f
                     <newline>            \n
                     <carriage return>    \r
                     <tab>                \t
                     <vertical tab>       \v

     Утилита hexdump также поддерживает следующие дополнительные символы пре-
     образования:
     _a[dox]     Вывод смещения, который считается для всех входных файлов по
                 границе следующего выводимого байта.  Дополнительные символы
                 d, o и x задают десятичную, восьмеричную или шестнадцатерич-
                 ный форматы вывода соответственно.

     _A[dox]     То же самое, что и символ преобразования _a, за исключением
                 того, что применяется только один раз, и после обработки всех
                 входных данных.
     _c          Вывод символов в наборе символов по умолчанию.  Непечатаемые
                 символы выводятся в трехзнаковом восьмеричном виде с заполне-
                 нием нулями, кроме тех, которым соответствуют стандартные
                 escape-сокращения (смотри выше), и которые выводятся в виде
                 двухсимвольных последовательностей.

     _p          Вывод символов в наборе символов по умолчанию.  Непечатаемые
                 символы выводятся как одинарные символы ``.''.
     _u          Вывод символов из кодовой таблицы US ASCII, за тем исключе-
                 нием, что управляющие символы выводятся с использованием
                 перечисленных ниже имен в нижнем регистре.  Символы с кодами,
                 превышающими шестнадцатеричное 0xff, выводятся как шестнадца-
                 теричные строки.

                 000 NUL  001 SOH  002 STX  003 ETX  004 EOT  005 ENQ
                 006 ACK  007 BEL  008 BS   009 HT   00A LF   00B VT
                 00C FF   00D CR   00E SO   00F SI   010 DLE  011 DC1
                 012 DC2  013 DC3  014 DC4  015 NAK  016 SYN  017 ETB
                 018 CAN  019 EM   01A SUB  01B ESC  01C FS   01D GS
                 01E RS   01F US   0FF DEL
     Для символов преобразования поддерживается и используется по умолчанию
     следующее количество байт в счетчиках:

           %_c, %_p, %_u, %c       Только однобайтовые счетчики.
           %d, %i, %o, %u, %X, %x  По умолчанию четыре байта, поддерживаются
                                   одно-, двух- и четырехбайтовые счетчики.

           %E, %e, %f, %G, %g      По умолчанию восемь байтов, поддерживаются
                                   счётчики по четыре и двенадцать байтов.
     Количество данных, интерпретируемых каждой строкой формата, определяется
     суммарным количеством данных, требуемым для всех форматных блоков, кото-
     рая для каждого блока равна количеству итераций, умноженному на счетчик
     байтов, или количеству итераций, умноженному на количество байт, требуе-
     мых форматом, если количество байт не указано.

     Входной поток разбивается на ``блоки'', который определяется как макси-
     мальное количество данных, преобразуемое любой форматной строкой.  Фор-
     матные строки, интерпретирующие меньше, чем входной блок данных, и чей
     последний форматный блок проинтерпретировал некоторое количество байт и
     при этом не имеет счетчика повторов, будет применяться до обработки всего
     входного блока или окончания данных, остающихся в блоке, подходящих для
     форматной строки.
     Если, в результате задания пользователем или hexdump изменения счетчика
     повторов, как это описано выше, счетчик повторов превысит единицу, то
     лидирующие пробелы выводиться во время последнего повторения не будут.

     Ошибкой является задание счетчика байтов, а также и нескольких форматных
     символов или форматных, если только все, кроме одного символа или строки
     преобразования принадлежат набору _a или _A.
     Если в результате задания параметра -n или достижения конца файла входные
     данные только частично соответствуют форматной строке, то входной блок
     дополняется нулями, достаточными для вывода всех имеющихся данных (то
     есть любые форматные блоки, перекрывающие конец данных, будут выводить
     некоторое количество нулевых байт).

     Последующий вывод таких форматных строк заменяется эквивалентным количе-
     ством пробелов.  Соответствующее количество пробелов определяется как
     количество пробелов, выводимых при интерпретации символа преобразования s
     с той же шириной поля и точностью, как изначальный символ или строка пре-
     образования, но без какого-либо из флагов ``+'', `` '', ``#'' преобразо-
     вания, и ссылающегося на строку NULL.
     Если форматные строки не заданы, то по умолчанию вывод равнозначен тому,
     что получается при задании опции -x.

СТАТУС ЗАВЕРШЕНИЯ
     Утилиты hexdump и hd возвращают 0 в случае успешного завершения и >0 в
     случае возникновения ошибки.
ПРИМЕРЫ
     Вывод в читабельном формате:

           "%06.6_ao "  12/1 "%3_u "
           "\t\t" "%_p "
           "\n"
     Реализация опции -x:

           "%07.7_Ax\n"
           "%07.7_ax  " 8/2 "%04x " "\n"
СМОТРИ ТАКЖЕ
     gdb(1), od(1)

FreeBSD 6.2                      10 июля 2004                      FreeBSD 6.2
Ваша оценка: Нет Средняя: 4 (4 голоса)

Вставай, Україно!

Литература

Тяжёлое детство: восьмибитные игрушки.