Linux — Unix команда: hexdump

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

конспект

[-bcCdovx ] -слов [-е format_string] -words [-е формат_файла] -words [-длина] -слов [-sпропустить] файл …  

Описание

Утилита hexdump — это фильтр, который отображает указанные файлы или стандартный ввод, если файлы не указаны, в указанном пользователем формате.

Возможны следующие варианты:

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

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

Канонический шестнадцатеричный + ASCII-дисплей Отображение входного смещения в шестнадцатеричном формате, за которым следуют шестнадцать разделенных пробелами двух столбцов шестнадцатеричных байтов, за которыми следуют те же шестнадцать байтов в формате% _p, заключенные в символы « | ».

-d

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

-е format_string

Укажите строку формата, которая будет использоваться для отображения данных.

-е format_file

Укажите файл, который содержит одну или несколько строк формата, разделенных символом новой строки. Пустые строки и строки, первым непустым символом которых является хеш-метка ( # игнорируются

-N длина

Интерпретировать только длину байтов ввода.

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

-s смещение

Пропустить байты смещения от начала ввода. По умолчанию смещение интерпретируется как десятичное число. С ведущим 0x или же 0X смещение интерпретируется как шестнадцатеричное число, в противном случае с ведущей  Смещение интерпретируется как восьмеричное число. Добавление персонажа б К или же м смещение вызывает его интерпретировать как кратное 512 1024 или же1048576 соответственно.

-v

v опция заставляет hexdump отображать все входные данные. Без —v опция, любое количество групп выходных линий, которые были бы идентичны непосредственно предшествующей группе выходных линий (за исключением входных смещений), заменяются строкой, состоящей из одной звездочки.

-Икс

Двухбайтовое шестнадцатеричное отображение Отображение смещения ввода в шестнадцатеричном формате, за которым следуют восемь, разделенных пробелами, четыре столбца, заполненные нулями, двухбайтовые количества входных данных, в шестнадцатеричном формате, на строку.

Для каждого входного файла последовательно копирует входные данные в стандартный вывод, преобразуя данные в соответствии со строками формата, заданными параметром —е а также —е варианты, в том порядке, в котором они были указаны.  

Форматы

Строка формата содержит любое количество единиц формата, разделенных пробелами. Единица формата содержит до трех элементов: счетчик итераций, счетчик байтов и формат.

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

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

Если указан счетчик итераций и / или счетчик байтов, после счетчика итераций и / или до счетчика байтов необходимо поместить один слеш, чтобы устранить их неоднозначность. Любые пробелы до или после косой черты игнорируются.

Формат обязателен и должен быть заключен в двойные кавычки («»). Он интерпретируется как строка формата в стиле fprintf (см. Fprintf (3)), со следующими исключениями:

  • Звездочка (*) не может использоваться в качестве ширины или точности поля.
  • Счетчик байтов или точность поля требуются для каждого символа преобразования «s» (в отличие от значения по умолчанию для fprintf (3), которое печатает всю строку, если точность не указана).
  • Символы преобразования «h», «l», «n», «p» и «q» не поддерживаются.
  • Поддерживаются escape-последовательности из одного символа, описанные в стандарте C:
    • NUL \ 0
    •    \ а
    •  \ б
    •  \ е
    •    \ п
    • \ т
    • \ v

Hexdump также поддерживает следующие дополнительные строки преобразования:

_a [DOX ]

Отображение входного смещения, накопленного по входным файлам, следующего отображаемого байта. Добавленные символы dо, а также Икс укажите основание дисплея как десятичное, восьмеричное или шестнадцатеричное соответственно.

_A [DOX ]

Идентичен _a Строка преобразования, за исключением того, что она выполняется только один раз, когда все входные данные обработаны.

_c

Выведите символы в наборе символов по умолчанию. Непечатаемые символы отображаются в виде трехбуквенных восьмеричных символов, за исключением тех, которые представлены стандартными escape-обозначениями (см. Выше), которые отображаются в виде двухсимвольных строк.

_п

Выведите символы в наборе символов по умолчанию. Непечатаемые символы отображаются как единое целое.».

_u

Выведите символы ASCII США, за исключением того, что управляющие символы отображаются с использованием следующих строчных имен. Символы больше 0xff, шестнадцатеричные, отображаются в виде шестнадцатеричных строк.

000 nul 001 soh 002 stx 003 etx 004 eot 005 enq

006 ack 007 бел 008 bs 009 ht 00A lf 00B vt

00C ff 00D cr 00E, поэтому 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 США 0FF Del

Значения байтов по умолчанию и поддерживаемых байтов для символов преобразования следующие:

% _c,% _p,% _u,% c

Один байт считается только.

% d,% i,% o % u,% X,% x

Поддерживается четыре байта по умолчанию, один, два и четыре байта.

% E,% e,% f % G,% g

Восемь байтов по умолчанию, поддерживается четыре байта.

Количество данных, интерпретируемое каждой строкой формата, является суммой данных, требуемых каждой единицей формата, которая представляет собой число итераций, умноженное на количество байтов, или число итераций, умноженное на количество байтов, требуемое форматом, если число байтов не указано.

Входные данные обрабатываются в «блоках», где блок определяется как наибольшее количество данных, указанное в любой строке формата. Строки форматирования интерпретируют меньше данных входного блока, последний блок форматирования которых интерпретирует некоторое количество байтов и не имеет заданного числа итераций, увеличивают счетчик итераций до тех пор, пока не будет обработан весь входной блок или не будет достаточно данных оставаясь в блоке, чтобы удовлетворить формат строки.

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

Ошибочно указывать количество байтов, а также несколько символов или строк преобразования, если только все символы или строки преобразования, кроме одного, не являются _a или же _A

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

Дальнейший вывод строк такого формата заменяется эквивалентным количеством пробелов. Эквивалентное количество пробелов определяется как число пробелов, выводимых s символ преобразования с той же шириной и точностью поля, что и исходный символ преобразования или строка преобразования, но с любым «+«» » « удалены символы преобразования и ссылка на пустую строку.

Если строки формата не указаны, отображение по умолчанию эквивалентно указанию —Икс вариант.

в случае успеха выходит 0 и> 0 в случае ошибки.  

ПРИМЕРЫ

Отображение ввода в прочтенном формате:

"% 06.6_ao" 12/1 "% 3_u"

"\ t \ t" "% _p"

«\ П»

Реализуйте опцию -x:

"% 07.7_Ax \ п"

"% 07.7_ax" 8/2 "% 04x" "\ n"

стандарты

Ожидается, что утилита будет совместима с St -p1003.2.

Ссылка на основную публикацию