2024-08-20 19:57:00 +02:00
|
|
|
|
.TH XXD 1 "May 2024" "Справочник по программе xxd"
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.\"
|
|
|
|
|
.\" 21st May 1996
|
|
|
|
|
.\" Man page author:
|
|
|
|
|
.\" Tony Nugent <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
|
|
|
|
|
.\" Changes by Bram Moolenaar <Bram@vim.org>
|
2024-08-20 19:57:00 +02:00
|
|
|
|
.SH НАЗНАЧЕНИЕ
|
|
|
|
|
Программа
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.I xxd
|
2024-08-20 19:57:00 +02:00
|
|
|
|
\[em] выполняет преобразование данных или в шестнадцатеричный вид, или выполняет
|
|
|
|
|
обратное преобразование из шестнадцатеричного кода в исходный формат
|
|
|
|
|
.SH КРАТКИЙ ОБЗОР
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.B xxd
|
|
|
|
|
\-h[elp]
|
|
|
|
|
.br
|
|
|
|
|
.B xxd
|
2024-08-20 19:57:00 +02:00
|
|
|
|
[аргументы] [входной_файл [выходной_файл]]
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
|
|
|
|
.B xxd
|
2024-08-20 19:57:00 +02:00
|
|
|
|
\-r[evert] [аргументы] [входной_файл [выходной_файл]]
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.SH ОПИСАНИЕ
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Программа
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.I xxd
|
2024-08-20 19:57:00 +02:00
|
|
|
|
создаёт представление указанного файла или данных, прочитанных из стандартного
|
|
|
|
|
потока ввода, в виде шестнадцатеричных кодов. Эта программа также может
|
|
|
|
|
выполнять обратное преобразование заданных шестнадцатеричными кодами данных
|
|
|
|
|
в исходный двоичных формат.
|
|
|
|
|
Подобно программам
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.BR uuencode(1)
|
|
|
|
|
и
|
2024-08-20 19:57:00 +02:00
|
|
|
|
.BR uudecode(1)
|
|
|
|
|
, она позволяет выполнять преобразование двоичных данных в символы кодировки
|
|
|
|
|
ASCII, которые можно передавать по электронной почте, однако, помимо этого,
|
|
|
|
|
программа xxd позволяет выполнять декодирование в поток стандартного вывода,
|
|
|
|
|
а также может применяться для создания исправлений для двоичных файлов.
|
|
|
|
|
.SH АРГУМЕНТЫ КОМАНДНОЙ СТРОКИ
|
2005-03-20 22:37:15 +00:00
|
|
|
|
Если
|
|
|
|
|
.I входной_файл
|
2024-08-20 19:57:00 +02:00
|
|
|
|
не задан, то требуемые данные считываются из стандартного потока ввода.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
В случае, если в качестве
|
|
|
|
|
.I входного_файла
|
|
|
|
|
используется символ
|
2024-08-20 19:57:00 +02:00
|
|
|
|
.RB ' \- ',
|
|
|
|
|
источником данных также выступает стандартный поток ввода.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
В том случае, если не указан
|
|
|
|
|
.I выходной_файл
|
|
|
|
|
(или вместо него используется символ
|
2024-08-20 19:57:00 +02:00
|
|
|
|
.RB ' \- '
|
|
|
|
|
), результат преобразования направляется в стандартный поток вывода.
|
|
|
|
|
.PP
|
|
|
|
|
Обратите внимание, что применяется "ленивый" алгоритм разбора аргументов,
|
|
|
|
|
который проверяет только первую букву аргумента, если, конечно, для этого
|
|
|
|
|
аргумента не указано какое-то значение.
|
|
|
|
|
Пробелы между односимвольным аргументом и его значением не являются
|
|
|
|
|
обязательными. Значения аргументов могут быть заданы в десятичном,
|
|
|
|
|
шестнадцатеричном или восьмеричном формате.
|
|
|
|
|
Таким образом, аргументы
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.BR \-c8 ,
|
|
|
|
|
.BR "\-c 8" ,
|
|
|
|
|
.B \-c 010
|
|
|
|
|
и
|
|
|
|
|
.B \-cols 8
|
|
|
|
|
являются равнозначными.
|
|
|
|
|
.PP
|
|
|
|
|
.TP
|
|
|
|
|
.IR \-a " | " \-autoskip
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Включить автоматический пропуск, т. е., вместо нескольких идущих подряд строк
|
|
|
|
|
с нулевым значением, используется одиночный символ '*'.
|
|
|
|
|
По умолчанию не применяется.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
.IR \-b " | " \-bits
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Использовать биты (двоичный код), а не шестнадцатеричные цифры.
|
|
|
|
|
При указании этого аргумента, вместо обычного шестнадцатеричного представления
|
|
|
|
|
октетов, будет отображается набор из восьми цифр "1" и "0". Каждая строка
|
|
|
|
|
предваряется её номером в шестнадцатеричном виде, а завершается в виде символов
|
2024-09-17 19:03:16 +02:00
|
|
|
|
в кодировке ASCII (или в кодировке EBCDIC). Аргумент командной строки \-p
|
|
|
|
|
в этом режиме не применяется. Аргумент \-i может быть указан для этого режима.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
.IR "\-c кол " | " \-cols кол"
|
|
|
|
|
Задаёт количество октетов
|
|
|
|
|
.RI < кол >,
|
|
|
|
|
которое выводится на каждой строке. По умолчанию используется значение 16
|
2024-08-20 19:57:00 +02:00
|
|
|
|
(для аргумента \-i используется 12, для \-ps \[em] 30, для \-b \[em] 6).
|
|
|
|
|
Максимально допустимое значение \[em] 256.
|
|
|
|
|
Максимальное значение не применяется с аргументом \-ps. Если с аргументом \-ps,
|
|
|
|
|
указано значение 0, то будет выведена просто одна длинная строка.
|
|
|
|
|
.TP
|
|
|
|
|
.IR \-C " | " \-capitalize
|
|
|
|
|
Преобразовать наименования переменных в верхний регистр при использовании стиля
|
|
|
|
|
отображения в виде подключаемых файлов языка Си,
|
|
|
|
|
который включается через аргумент командной строки \-i.
|
|
|
|
|
.TP
|
|
|
|
|
.I \-d
|
|
|
|
|
Отображать смещение не в шестнадцатеричном, а в десятичном формате.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
.IR \-E " | " \-EBCDIC
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Отображать символы в крайне правой колонке не в кодировке ASCII,
|
|
|
|
|
а в кодировке EBCDIC. Этот аргумент не влияет на шестнадцатеричное
|
|
|
|
|
представление данных. Данный аргумент не имеет смысла, если используются
|
|
|
|
|
аргументы командной строки \-r, \-p или \-i.
|
|
|
|
|
.TP
|
|
|
|
|
.IR \-e
|
|
|
|
|
Использовать обратный порядок байт при отображение шестнадцатеричного
|
|
|
|
|
представления данных.
|
|
|
|
|
Группа байт будет показана как двоичное слово от младших разрядов к старшим.
|
|
|
|
|
Используемое по умолчанию группирование по четыре байта может быть изменено
|
|
|
|
|
через аргумент командной строки
|
|
|
|
|
.RI "" \-g .
|
|
|
|
|
Действие этого аргумента распространяется только на шестнадцатеричное
|
|
|
|
|
представление данных и не оказывает влияние на символьное представление
|
|
|
|
|
в кодировке ASCII (или EBCDIC).
|
|
|
|
|
Аргументы командной строки
|
|
|
|
|
\-r, \-p, \-i не применяются в этом режиме.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
.IR "\-g байт " | " \-groupsize байт"
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Выполнить группирование указанного количества
|
|
|
|
|
.RI < байт >
|
|
|
|
|
(две шестнадцатеричные цифры или восемь двоичных цифр), отделяя группы
|
|
|
|
|
друг от друга пробелами.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
Значение
|
|
|
|
|
.I \-g 0
|
2024-08-20 19:57:00 +02:00
|
|
|
|
применяется для отказа от использования группирования.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
По умолчанию используется значение
|
2024-08-20 19:57:00 +02:00
|
|
|
|
.RI < байт ">, равное " 2
|
|
|
|
|
при отображении в прямом порядке байт, \fI4\fP при отображении в обратном
|
|
|
|
|
порядке байт и \fI1\fP в двоичном режиме. Группировка не применяется
|
|
|
|
|
в режиме PostScript или include.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
.IR \-h " | " \-help
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Показать краткую информацию об аргументах командной строки и завершить работу
|
|
|
|
|
программы.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
Создание шестнадцатеричного представления не выполняется.
|
|
|
|
|
.TP
|
|
|
|
|
.IR \-i " | " \-include
|
2024-09-17 19:03:16 +02:00
|
|
|
|
Создавать вывод в стиле подключаемых заголовочных файлов языка Си. Вывод
|
|
|
|
|
содержит полноценное определение статического массива данных, название которого
|
|
|
|
|
соответствует наименованию входного файла, если программа xxd не считывает
|
|
|
|
|
данные из стандартного потока ввода. Возможно совмещение аргументов \-i и \-b.
|
|
|
|
|
\-b.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
.IR "\-l длина " | " \-len длина"
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Указывает, что после записи заданного в параметре
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.RI < длина >
|
2024-08-20 19:57:00 +02:00
|
|
|
|
количества октетов, работа программы будет завершена.
|
|
|
|
|
.TP
|
|
|
|
|
.I "\-n название " | " \-name название"
|
|
|
|
|
Изменить возвращаемое наименование переменной при использовании аргумента \-i.
|
|
|
|
|
Применяется к массиву байт, который будет именоваться как \fIназвание\fP и длина
|
|
|
|
|
файла как \fIназвание\fP_len.
|
|
|
|
|
.TP
|
|
|
|
|
.I \-o смещение
|
|
|
|
|
Указывает добавить
|
|
|
|
|
.RI < смещение >
|
|
|
|
|
в отображаемую позицию файла.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Использовать непрерывный формата вывода шестнадцатеричного кода,
|
|
|
|
|
известного как "простой" стиль или стиль "PostScript".
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
.IR \-r " | " \-revert
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Выполнить операцию обратного преобразования, т. е. преобразование
|
|
|
|
|
шестнадцатеричного представления в двоичный код (или применить результат
|
|
|
|
|
в качестве исправления).
|
|
|
|
|
Если вывод происходит не в стандартного поток вывода, то программа xxd выполняет
|
|
|
|
|
добавление кода к выходному файлу. При использовании комбинации аргументов
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.I \-r \-p
|
|
|
|
|
происходит чтение "простого" шестнадцатеричного представления без использования
|
2024-08-20 19:57:00 +02:00
|
|
|
|
информации о номерах строк и какого-либо специального распределения колонок.
|
|
|
|
|
Пробелы и символы новой строки могут встречаться в любом месте исходных данных.
|
|
|
|
|
При использовании комбинации аргументов
|
|
|
|
|
.I \-r \-b
|
|
|
|
|
будет происходить считывание двоичного представления вместо шестнадцатеричного.
|
|
|
|
|
.TP
|
|
|
|
|
.IR \-R " " когда
|
|
|
|
|
В выходных данных одни и те же шестнадцатеричные значения и строковые значения
|
|
|
|
|
будут подсвечиваться одним и тем же цветом. В основном это помогает различать
|
|
|
|
|
печатаемые и непечатаемые символы.
|
|
|
|
|
Где
|
|
|
|
|
.I \fIкогда\fP
|
|
|
|
|
может принимать значение
|
|
|
|
|
.BR never " (никогда), " always " (всегда), или " auto " (автовыбор, по умолчанию).
|
|
|
|
|
Если установлена переменная окружения
|
|
|
|
|
.BR $NO_COLOR
|
|
|
|
|
, то цветовая подсветка будет отключена.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
.I \-seek смещение
|
2024-08-20 19:57:00 +02:00
|
|
|
|
При указании после аргумента
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.I \-r
|
2024-08-20 19:57:00 +02:00
|
|
|
|
, будет добавляться указанное
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.RI < смещение >
|
|
|
|
|
к файловым позициям, обнаруженным в исходных данных.
|
|
|
|
|
.TP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
.I \-s [+][\-]seek
|
|
|
|
|
Начинать обработку с указанного абсолютного (или относительного)
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.RI < смещения >
|
|
|
|
|
в байтах во входном_файле.
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Где \fI+ \fRуказывает, что смещение является относительным по отношению
|
|
|
|
|
к текущей позиции данных в стандартном потоке ввода (бессмысленно, если чтение
|
|
|
|
|
происходит не из стандартного потока ввода). А параметр \fI\- \fRуказывает,
|
|
|
|
|
что должно быть прочитано указанное количество символов от конца ввода (либо,
|
|
|
|
|
если одновременно с параметром \fI+\fR, то перед текущей позицией данных
|
|
|
|
|
в стандартном потоке ввода).
|
|
|
|
|
Если аргумент \-s не используется, то программа xxd начинает обработку
|
|
|
|
|
от текущей позиции в файле.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
.I \-u
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Указывает, что в выводе отображать шестнадцатеричные цифры в верхнем регистре.
|
|
|
|
|
По умолчанию используются символы в нижнем регистре символов.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
.IR \-v " | " \-version
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Показать информацию о версии программы и завершить работу.
|
|
|
|
|
.SH НЕКОТОРЫЕ РАЗЪЯСНЕНИЯ
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
При указании команды
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.I xxd \-r
|
2024-08-20 19:57:00 +02:00
|
|
|
|
при запуске программы, будет применяться некий встроенный алгоритм
|
|
|
|
|
для распознавания информации о номерах строк.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
Если возможен поиск по входному файлу, то номера строк в начале каждой строки
|
2024-08-20 19:57:00 +02:00
|
|
|
|
шестнадцатеричного представления могут быть неупорядоченными, некоторые строки
|
|
|
|
|
могут быть пропущены или пересекаться друг с другом. В этих случаях программа
|
|
|
|
|
xxd использует функцию lseek(2) для перехода к следующей позиции. Если поиск по
|
|
|
|
|
входному файлу невозможен, то допустимы только пропуски строк, которые
|
|
|
|
|
заполняются нулевыми байтами.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Использование команды
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.I xxd \-r
|
2024-08-20 19:57:00 +02:00
|
|
|
|
приводит к тому, что сообщения об ошибках не будут отображаться.
|
|
|
|
|
Посторонние данные просто молча пропускаются.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
При редактировании шестнадцатеричного представления двоичных файлов, обращайте
|
|
|
|
|
внимание, что по команде
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.I xxd \-r
|
2024-08-20 19:57:00 +02:00
|
|
|
|
, после считывания достаточного количества колонок шестнадцатеричных данных
|
|
|
|
|
(см. аргумент \-c), в строке ввода не будут обрабатываться остальные данные.
|
|
|
|
|
Это означает, что изменения, внесённые в колонке с текстом в кодировке
|
|
|
|
|
ASCII (или EBCDIC), всегда игнорируются.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
При обратном преобразовании шестнадцатеричного представления в стиле
|
2024-08-20 19:57:00 +02:00
|
|
|
|
PostScript с помощью команды xxd \-r \-p количество колонок не учитывается.
|
|
|
|
|
В этом случае распознаются все символы, которые похожи на пары шестнадцатеричных
|
|
|
|
|
цифр.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
|
|
|
|
Обратите внимание на различие между командами
|
|
|
|
|
.PP
|
|
|
|
|
\fI% xxd \-i файл\fR
|
|
|
|
|
.PP
|
|
|
|
|
и
|
|
|
|
|
.PP
|
|
|
|
|
\fI% xxd \-i \< файл\fR
|
|
|
|
|
.PP
|
|
|
|
|
Команда
|
|
|
|
|
.I xxd \-s \+seek
|
|
|
|
|
может отличаться от
|
|
|
|
|
.I xxd \-s seek,
|
2024-08-20 19:57:00 +02:00
|
|
|
|
поскольку для того, чтобы "отмотать" данные на входе назад, используется вызов
|
|
|
|
|
функции lseek(2).
|
|
|
|
|
При указании параметра '+' поведение будет отличаться, если входные данные
|
|
|
|
|
поступают со стандартного потока ввода, а позиция в файле стандартного ввода
|
|
|
|
|
не находится в начале файла к тому моменту, когда программа xxd запущена
|
|
|
|
|
и приступает к чтению ввода.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
Нижеследующие примеры помогут прояснить (или ещё больше запутать!) ситуацию...
|
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Отмотка потока стандартного ввода назад необходима, поскольку программа 'cat'
|
|
|
|
|
уже выполнила чтение данных до конца из стандартного потока ввода:
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
\fI% sh \-c "cat > plain_copy; xxd \-s 0 > hex_copy" < file\fR
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Вывод шестнадцатеричного представления от позиции в файле 0x480 (=1024+128).
|
|
|
|
|
Параметр '+' означает "относительно текущей позиции", таким образом '128'
|
|
|
|
|
добавляется к первому килобайту, где завершает работу программа dd:
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +128 \> hex_snippet" < file\fR
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Вывод шестнадцатеричного представления от позиции в файле 0x100 (=1024\[mi]768):
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +\-768 \> hex_snippet" < file\fR
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
В то же время, следует заметить, что подобные ситуации встречаются довольно
|
|
|
|
|
редко, так что параметр '+' обычно не используется. Автор предпочитает наблюдать
|
|
|
|
|
за работой программы xxd с помощью инструментов strace(1) или truss(1) в тех
|
|
|
|
|
случаях, когда применяется аргумент
|
2005-03-20 22:37:15 +00:00
|
|
|
|
\-s.
|
|
|
|
|
.SH ПРИМЕРЫ
|
|
|
|
|
.PP
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Вывести всё, кроме первых трёх строк (0x30 байт)
|
|
|
|
|
.BR файла
|
2005-03-20 22:37:15 +00:00
|
|
|
|
:
|
2024-08-20 19:57:00 +02:00
|
|
|
|
.br
|
|
|
|
|
\fI% xxd \-s 0x30 file\fR
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Вывести три строки (0x30 байт) от конца
|
|
|
|
|
.BR файла
|
2005-03-20 22:37:15 +00:00
|
|
|
|
:
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
\fI% xxd \-s \-0x30 file\fR
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
.br
|
|
|
|
|
Вывести 120 байт в виде непрерывного шестнадцатеричного представления
|
|
|
|
|
по 20 октетов в строке
|
|
|
|
|
.br
|
|
|
|
|
(этот пример для справочника xxd.1 на английском языке, для русского языка будет
|
|
|
|
|
немного другой результат):
|
|
|
|
|
.br
|
2005-03-20 22:37:15 +00:00
|
|
|
|
\fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
2e544820585844203120224d6179203230323422
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
20224d616e75616c207061676520666f72207878
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
64220a2e5c220a2e5c222032317374204d617920
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
313939360a2e5c22204d616e2070616765206175
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
74686f723a0a2e5c2220202020546f6e79204e75
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
67656e74203c746f6e79407363746e7567656e2e
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
|
|
|
|
|
.br
|
|
|
|
|
Вывести первые 120 байт этого справочника по 12 октетов в строке
|
|
|
|
|
.br
|
|
|
|
|
(этот пример для справочника xxd.1 на английском языке, для русского языка будет
|
|
|
|
|
немного другой результат):
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
|
|
|
|
\fI% xxd \-l 120 \-c 12 xxd.1\fR
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
00000000: 2e54 4820 5858 4420 3120 224d .TH XXD 1 "M
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
0000000c: 6179 2032 3032 3422 2022 4d61 ay 2024" "Ma
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
00000018: 6e75 616c 2070 6167 6520 666f nual page fo
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
00000024: 7220 7878 6422 0a2e 5c22 0a2e r xxd"..\\"..
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
00000030: 5c22 2032 3173 7420 4d61 7920 \\" 21st May
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
0000003c: 3139 3936 0a2e 5c22 204d 616e 1996..\\" Man
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
00000048: 2070 6167 6520 6175 7468 6f72 page author
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
00000054: 3a0a 2e5c 2220 2020 2054 6f6e :..\\" Ton
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
00000060: 7920 4e75 6765 6e74 203c 746f y Nugent <to
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
0000006c: 6e79 4073 6374 6e75 6765 6e2e ny@sctnugen.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Показать дату из файла
|
|
|
|
|
.B xxd.1
|
|
|
|
|
.br
|
|
|
|
|
(этот пример для справочника xxd.1 на английском языке, для русского языка будет
|
|
|
|
|
немного другая команда, например, для UTF-8 \[em] \flxxd \-s 0x50 \-l 13 \-c 13 xxd.1\fR):
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
\fI% xxd \-s 0x33 \-l 13 \-c 13 xxd.1\fR
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
00000033: 3231 7374 204d 6179 2031 3939 36 21st May 1996
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
|
|
|
|
.br
|
|
|
|
|
Скопировать
|
|
|
|
|
.B входной_файл
|
|
|
|
|
в
|
|
|
|
|
.B выходной_файл
|
2024-08-20 19:57:00 +02:00
|
|
|
|
с добавлением 100 байт со значением 0x00 в начало файла:
|
|
|
|
|
.br
|
2005-03-20 22:37:15 +00:00
|
|
|
|
\fI% xxd входной_файл | xxd \-r \-s 100 \> выходной_файл\fR
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Заменить дату в файле
|
|
|
|
|
.B xxd.1
|
|
|
|
|
.br
|
|
|
|
|
(этот пример для справочника xxd.1 на английском языке, для русского языка будут
|
|
|
|
|
немного другие команды):
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
\fI% echo "0000034: 3574 68" | xxd \-r \- xxd.1\fR
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
\fI% xxd \-s 0x33 \-l 13 \-c 13 xxd.1\fR
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
00000033: 3235 7468 204d 6179 2031 3939 36 25th May 1996
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Создать 65537-байтный файл, все байты которого имеют значение 0x00,
|
|
|
|
|
кроме последнего байта, который должен иметь значение 'A' (0x41):
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
\fI% echo "010000: 41" | xxd \-r > file\fR
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
|
|
|
|
.br
|
|
|
|
|
Создать шестнадцатеричное представление этого файла с
|
|
|
|
|
использованием автоматического пропуска:
|
|
|
|
|
.PP
|
|
|
|
|
\fI% xxd \-a \-c 12 file\fR
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
00000000: 0000 0000 0000 0000 0000 0000 ............
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
|
|
|
|
*
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
0000fffc: 0000 0000 41 ....A
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
|
|
|
|
Создать 1-байтный файл, содержащий символ 'A'.
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Число после аргументов '\-r \-s' добавляется к номерам строк, найденным в файле,
|
2005-03-20 22:37:15 +00:00
|
|
|
|
иначе говоря, предшествующие байты пропускаются:
|
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 > file\fR
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Программу xxd можно использовать в качестве фильтра в редакторе, например в
|
|
|
|
|
.B vim(1)
|
|
|
|
|
, чтобы создать шестнадцатеричное представление области между
|
|
|
|
|
закладками 'a' и 'z':
|
|
|
|
|
.br
|
2005-03-20 22:37:15 +00:00
|
|
|
|
\fI:'a,'z!xxd\fR
|
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Можно использовать программу xxd в качестве фильтра в редакторе, например в
|
|
|
|
|
.B vim(1)
|
|
|
|
|
, для восстановления данных из шестнадцатеричного представления
|
|
|
|
|
между закладками 'a' и 'z':
|
|
|
|
|
.br
|
2005-03-20 22:37:15 +00:00
|
|
|
|
\fI:'a,'z!xxd \-r\fR
|
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Можно использовать программу xxd в качестве фильтра в редакторе, например в
|
|
|
|
|
.B vim(1)
|
|
|
|
|
, для восстановления данных из единственной строки
|
2005-03-20 22:37:15 +00:00
|
|
|
|
шестнадцатеричного представления. Поместите курсор в соответствующую строку
|
|
|
|
|
и наберите
|
2024-08-20 19:57:00 +02:00
|
|
|
|
.br
|
2005-03-20 22:37:15 +00:00
|
|
|
|
\fI!!xxd \-r\fR
|
|
|
|
|
.PP
|
|
|
|
|
Чтобы прочитать единственный символ из канала связи:
|
2024-08-20 19:57:00 +02:00
|
|
|
|
.br
|
2005-03-20 22:37:15 +00:00
|
|
|
|
\fI% xxd \-c1 < /dev/term/b &\fR
|
|
|
|
|
.br
|
|
|
|
|
\fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
\fI% echo \-n foo \> /dev/term/b\fR
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
.SH КОДЫ ЗАВЕРШЕНИЯ
|
|
|
|
|
При завершении работы, программа xxd возвращает следующие значения:
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
0
|
|
|
|
|
Ошибки не обнаружены.
|
|
|
|
|
.TP
|
|
|
|
|
\-1
|
|
|
|
|
Операция не поддерживается (выполнение
|
2024-08-20 19:57:00 +02:00
|
|
|
|
.I \%xxd \-r \-i
|
2005-03-20 22:37:15 +00:00
|
|
|
|
пока невозможно).
|
|
|
|
|
.TP
|
|
|
|
|
1
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Ошибка при разборе аргументов командной строки.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
2
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Ошибки во входном файле.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
3
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Ошибки в выходном файле.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.TP
|
|
|
|
|
4,5
|
|
|
|
|
Желательная позиция поиска недостижима.
|
2024-08-20 19:57:00 +02:00
|
|
|
|
.SH СМОТРИТЕ ТАКЖЕ
|
2005-03-20 22:37:15 +00:00
|
|
|
|
uuencode(1), uudecode(1), patch(1)
|
|
|
|
|
.br
|
|
|
|
|
.SH ПРЕДУПРЕЖДЕНИЕ
|
|
|
|
|
Странность этой программы соответствует особенностям мозга её создателя.
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Используйте её на свой страх и риск. Копируйте файлы, отслеживайте вызовы,
|
|
|
|
|
становитесь волшебником.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
|
|
|
|
.SH ВЕРСИЯ
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Этот справочник документирует программу xxd версии 1.7 от 2024-05.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.SH АВТОР
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
(c) Юрген Вайгерт (Juergen Weigert), 1990-1997
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
<jnweiger@informatik.uni\-erlangen.de>
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.LP
|
|
|
|
|
Вы можете свободно распространять программу со ссылкой на меня.
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Если использование этой программы принесло вам какой-то доход, поделитесь со
|
|
|
|
|
мной.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Если вы потеряли деньги, то я тут ни при чём.
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Первый вариант справочника написан Тони Наджентом (Tony Nugent)
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.br
|
|
|
|
|
<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
|
|
|
|
|
.br
|
2024-08-20 19:57:00 +02:00
|
|
|
|
Небольшие изменения внесены Брамом Моленаром (Bram Moolenaar).
|
|
|
|
|
Справочник отредактирован Юргеном Вайгертом (Juergen Weigert).
|
2005-03-20 22:37:15 +00:00
|
|
|
|
.PP
|