blob: fd162fc09faa2c11a34779475cfa03ef24ebe8aa [file] [log] [blame]
RestorerZ12333ba2024-08-20 19:57:00 +02001.TH XXD 1 "May 2024" "Справочник по программе xxd"
Bram Moolenaar217ad922005-03-20 22:37:15 +00002.\"
3.\" 21st May 1996
4.\" Man page author:
5.\" Tony Nugent <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
6.\" Changes by Bram Moolenaar <Bram@vim.org>
RestorerZ12333ba2024-08-20 19:57:00 +02007.SH НАЗНАЧЕНИЕ
8Программа
Bram Moolenaar217ad922005-03-20 22:37:15 +00009.I xxd
RestorerZ12333ba2024-08-20 19:57:00 +020010\[em] выполняет преобразование данных или в шестнадцатеричный вид, или выполняет
11обратное преобразование из шестнадцатеричного кода в исходный формат
12.SH КРАТКИЙ ОБЗОР
Bram Moolenaar217ad922005-03-20 22:37:15 +000013.B xxd
14\-h[elp]
15.br
16.B xxd
RestorerZ12333ba2024-08-20 19:57:00 +020017[аргументы] [входной_файл [выходной_файл]]
Bram Moolenaar217ad922005-03-20 22:37:15 +000018.br
19.B xxd
RestorerZ12333ba2024-08-20 19:57:00 +020020\-r[evert] [аргументы] [входной_файл [выходной_файл]]
Bram Moolenaar217ad922005-03-20 22:37:15 +000021.SH ОПИСАНИЕ
RestorerZ12333ba2024-08-20 19:57:00 +020022Программа
Bram Moolenaar217ad922005-03-20 22:37:15 +000023.I xxd
RestorerZ12333ba2024-08-20 19:57:00 +020024создаёт представление указанного файла или данных, прочитанных из стандартного
25потока ввода, в виде шестнадцатеричных кодов. Эта программа также может
26выполнять обратное преобразование заданных шестнадцатеричными кодами данных
27в исходный двоичных формат.
28Подобно программам
Bram Moolenaar217ad922005-03-20 22:37:15 +000029.BR uuencode(1)
30и
RestorerZ12333ba2024-08-20 19:57:00 +020031.BR uudecode(1)
32, она позволяет выполнять преобразование двоичных данных в символы кодировки
33ASCII, которые можно передавать по электронной почте, однако, помимо этого,
34программа xxd позволяет выполнять декодирование в поток стандартного вывода,
35а также может применяться для создания исправлений для двоичных файлов.
36.SH АРГУМЕНТЫ КОМАНДНОЙ СТРОКИ
Bram Moolenaar217ad922005-03-20 22:37:15 +000037Если
38.I входной_файл
RestorerZ12333ba2024-08-20 19:57:00 +020039не задан, то требуемые данные считываются из стандартного потока ввода.
Bram Moolenaar217ad922005-03-20 22:37:15 +000040В случае, если в качестве
41.I входного_файла
42используется символ
RestorerZ12333ba2024-08-20 19:57:00 +020043.RB ' \- ',
44источником данных также выступает стандартный поток ввода.
Bram Moolenaar217ad922005-03-20 22:37:15 +000045В том случае, если не указан
46.I выходной_файл
47(или вместо него используется символ
RestorerZ12333ba2024-08-20 19:57:00 +020048.RB ' \- '
49), результат преобразования направляется в стандартный поток вывода.
Bram Moolenaar217ad922005-03-20 22:37:15 +000050.PP
RestorerZ12333ba2024-08-20 19:57:00 +020051Обратите внимание, что применяется "ленивый" алгоритм разбора аргументов,
52который проверяет только первую букву аргумента, если, конечно, для этого
53аргумента не указано какое-то значение.
54Пробелы между односимвольным аргументом и его значением не являются
55обязательными. Значения аргументов могут быть заданы в десятичном,
56шестнадцатеричном или восьмеричном формате.
57Таким образом, аргументы
Bram Moolenaar217ad922005-03-20 22:37:15 +000058.BR \-c8 ,
59.BR "\-c 8" ,
60.B \-c 010
61и
62.B \-cols 8
63являются равнозначными.
64.PP
65.TP
66.IR \-a " | " \-autoskip
RestorerZ12333ba2024-08-20 19:57:00 +020067Включить автоматический пропуск, т. е., вместо нескольких идущих подряд строк
68с нулевым значением, используется одиночный символ '*'.
69По умолчанию не применяется.
Bram Moolenaar217ad922005-03-20 22:37:15 +000070.TP
71.IR \-b " | " \-bits
RestorerZ12333ba2024-08-20 19:57:00 +020072Использовать биты (двоичный код), а не шестнадцатеричные цифры.
73При указании этого аргумента, вместо обычного шестнадцатеричного представления
74октетов, будет отображается набор из восьми цифр "1" и "0". Каждая строка
75предваряется её номером в шестнадцатеричном виде, а завершается в виде символов
RestorerZ5ca3efa2024-09-17 19:03:16 +020076в кодировке ASCII (или в кодировке EBCDIC). Аргумент командной строки \-p
77в этом режиме не применяется. Аргумент \-i может быть указан для этого режима.
Bram Moolenaar217ad922005-03-20 22:37:15 +000078.TP
79.IR "\-c кол " | " \-cols кол"
80Задаёт количество октетов
81.RI < кол >,
82которое выводится на каждой строке. По умолчанию используется значение 16
RestorerZ12333ba2024-08-20 19:57:00 +020083(для аргумента \-i используется 12, для \-ps \[em] 30, для \-b \[em] 6).
84Максимально допустимое значение \[em] 256.
85Максимальное значение не применяется с аргументом \-ps. Если с аргументом \-ps,
86указано значение 0, то будет выведена просто одна длинная строка.
87.TP
88.IR \-C " | " \-capitalize
89Преобразовать наименования переменных в верхний регистр при использовании стиля
90отображения в виде подключаемых файлов языка Си,
91который включается через аргумент командной строки \-i.
92.TP
93.I \-d
94Отображать смещение не в шестнадцатеричном, а в десятичном формате.
Bram Moolenaar217ad922005-03-20 22:37:15 +000095.TP
96.IR \-E " | " \-EBCDIC
RestorerZ12333ba2024-08-20 19:57:00 +020097Отображать символы в крайне правой колонке не в кодировке ASCII,
98а в кодировке EBCDIC. Этот аргумент не влияет на шестнадцатеричное
99представление данных. Данный аргумент не имеет смысла, если используются
100аргументы командной строки \-r, \-p или \-i.
101.TP
102.IR \-e
103Использовать обратный порядок байт при отображение шестнадцатеричного
104представления данных.
105Группа байт будет показана как двоичное слово от младших разрядов к старшим.
106Используемое по умолчанию группирование по четыре байта может быть изменено
107через аргумент командной строки
108.RI "" \-g .
109Действие этого аргумента распространяется только на шестнадцатеричное
110представление данных и не оказывает влияние на символьное представление
111в кодировке ASCII (или EBCDIC).
112Аргументы командной строки
113\-r, \-p, \-i не применяются в этом режиме.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000114.TP
115.IR "\-g байт " | " \-groupsize байт"
RestorerZ12333ba2024-08-20 19:57:00 +0200116Выполнить группирование указанного количества
117.RI < байт >
118(две шестнадцатеричные цифры или восемь двоичных цифр), отделяя группы
119друг от друга пробелами.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000120Значение
121.I \-g 0
RestorerZ12333ba2024-08-20 19:57:00 +0200122применяется для отказа от использования группирования.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000123По умолчанию используется значение
RestorerZ12333ba2024-08-20 19:57:00 +0200124.RI < байт ">, равное " 2
125при отображении в прямом порядке байт, \fI4\fP при отображении в обратном
126порядке байт и \fI1\fP в двоичном режиме. Группировка не применяется
127в режиме PostScript или include.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000128.TP
129.IR \-h " | " \-help
RestorerZ12333ba2024-08-20 19:57:00 +0200130Показать краткую информацию об аргументах командной строки и завершить работу
131программы.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000132Создание шестнадцатеричного представления не выполняется.
133.TP
134.IR \-i " | " \-include
RestorerZ5ca3efa2024-09-17 19:03:16 +0200135Создавать вывод в стиле подключаемых заголовочных файлов языка Си. Вывод
136содержит полноценное определение статического массива данных, название которого
137соответствует наименованию входного файла, если программа xxd не считывает
138данные из стандартного потока ввода. Возможно совмещение аргументов \-i и \-b.
139\-b.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000140.TP
141.IR "\-l длина " | " \-len длина"
RestorerZ12333ba2024-08-20 19:57:00 +0200142Указывает, что после записи заданного в параметре
Bram Moolenaar217ad922005-03-20 22:37:15 +0000143.RI < длина >
RestorerZ12333ba2024-08-20 19:57:00 +0200144количества октетов, работа программы будет завершена.
145.TP
146.I "\-n название " | " \-name название"
147Изменить возвращаемое наименование переменной при использовании аргумента \-i.
148Применяется к массиву байт, который будет именоваться как \fIназвание\fP и длина
149файла как \fIназвание\fP_len.
150.TP
151.I \-o смещение
152Указывает добавить
153.RI < смещение >
154в отображаемую позицию файла.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000155.TP
156.IR \-p " | " \-ps " | " \-postscript " | " \-plain
RestorerZ12333ba2024-08-20 19:57:00 +0200157Использовать непрерывный формата вывода шестнадцатеричного кода,
158известного как "простой" стиль или стиль "PostScript".
Bram Moolenaar217ad922005-03-20 22:37:15 +0000159.TP
160.IR \-r " | " \-revert
RestorerZ12333ba2024-08-20 19:57:00 +0200161Выполнить операцию обратного преобразования, т. е. преобразование
162шестнадцатеричного представления в двоичный код (или применить результат
163в качестве исправления).
164Если вывод происходит не в стандартного поток вывода, то программа xxd выполняет
165добавление кода к выходному файлу. При использовании комбинации аргументов
Bram Moolenaar217ad922005-03-20 22:37:15 +0000166.I \-r \-p
167происходит чтение "простого" шестнадцатеричного представления без использования
RestorerZ12333ba2024-08-20 19:57:00 +0200168информации о номерах строк и какого-либо специального распределения колонок.
169Пробелы и символы новой строки могут встречаться в любом месте исходных данных.
170При использовании комбинации аргументов
171.I \-r \-b
172будет происходить считывание двоичного представления вместо шестнадцатеричного.
173.TP
174.IR \-R " " когда
175В выходных данных одни и те же шестнадцатеричные значения и строковые значения
176будут подсвечиваться одним и тем же цветом. В основном это помогает различать
177печатаемые и непечатаемые символы.
178Где
179.I \fIкогда\fP
180может принимать значение
181.BR never " (никогда), " always " (всегда), или " auto " (автовыбор, по умолчанию).
182Если установлена переменная окружения
183.BR $NO_COLOR
184, то цветовая подсветка будет отключена.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000185.TP
186.I \-seek смещение
RestorerZ12333ba2024-08-20 19:57:00 +0200187При указании после аргумента
Bram Moolenaar217ad922005-03-20 22:37:15 +0000188.I \-r
RestorerZ12333ba2024-08-20 19:57:00 +0200189, будет добавляться указанное
Bram Moolenaar217ad922005-03-20 22:37:15 +0000190.RI < смещение >
191к файловым позициям, обнаруженным в исходных данных.
192.TP
RestorerZ12333ba2024-08-20 19:57:00 +0200193.I \-s [+][\-]seek
194Начинать обработку с указанного абсолютного (или относительного)
Bram Moolenaar217ad922005-03-20 22:37:15 +0000195.RI < смещения >
196в байтах во входном_файле.
RestorerZ12333ba2024-08-20 19:57:00 +0200197Где \fI+ \fRуказывает, что смещение является относительным по отношению
198к текущей позиции данных в стандартном потоке ввода (бессмысленно, если чтение
199происходит не из стандартного потока ввода). А параметр \fI\- \fRуказывает,
200что должно быть прочитано указанное количество символов от конца ввода (либо,
201если одновременно с параметром \fI+\fR, то перед текущей позицией данных
202в стандартном потоке ввода).
203Если аргумент \-s не используется, то программа xxd начинает обработку
204от текущей позиции в файле.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000205.TP
206.I \-u
RestorerZ12333ba2024-08-20 19:57:00 +0200207Указывает, что в выводе отображать шестнадцатеричные цифры в верхнем регистре.
208По умолчанию используются символы в нижнем регистре символов.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000209.TP
210.IR \-v " | " \-version
RestorerZ12333ba2024-08-20 19:57:00 +0200211Показать информацию о версии программы и завершить работу.
212.SH НЕКОТОРЫЕ РАЗЪЯСНЕНИЯ
Bram Moolenaar217ad922005-03-20 22:37:15 +0000213.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200214При указании команды
Bram Moolenaar217ad922005-03-20 22:37:15 +0000215.I xxd \-r
RestorerZ12333ba2024-08-20 19:57:00 +0200216при запуске программы, будет применяться некий встроенный алгоритм
217для распознавания информации о номерах строк.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000218Если возможен поиск по входному файлу, то номера строк в начале каждой строки
RestorerZ12333ba2024-08-20 19:57:00 +0200219шестнадцатеричного представления могут быть неупорядоченными, некоторые строки
220могут быть пропущены или пересекаться друг с другом. В этих случаях программа
221xxd использует функцию lseek(2) для перехода к следующей позиции. Если поиск по
222входному файлу невозможен, то допустимы только пропуски строк, которые
223заполняются нулевыми байтами.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000224.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200225Использование команды
Bram Moolenaar217ad922005-03-20 22:37:15 +0000226.I xxd \-r
RestorerZ12333ba2024-08-20 19:57:00 +0200227приводит к тому, что сообщения об ошибках не будут отображаться.
228Посторонние данные просто молча пропускаются.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000229.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200230При редактировании шестнадцатеричного представления двоичных файлов, обращайте
231внимание, что по команде
Bram Moolenaar217ad922005-03-20 22:37:15 +0000232.I xxd \-r
RestorerZ12333ba2024-08-20 19:57:00 +0200233, после считывания достаточного количества колонок шестнадцатеричных данных
234(см. аргумент \-c), в строке ввода не будут обрабатываться остальные данные.
235Это означает, что изменения, внесённые в колонке с текстом в кодировке
236ASCII (или EBCDIC), всегда игнорируются.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000237При обратном преобразовании шестнадцатеричного представления в стиле
RestorerZ12333ba2024-08-20 19:57:00 +0200238PostScript с помощью команды xxd \-r \-p количество колонок не учитывается.
239В этом случае распознаются все символы, которые похожи на пары шестнадцатеричных
240цифр.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000241.PP
242Обратите внимание на различие между командами
243.PP
244\fI% xxd \-i файл\fR
245.PP
246и
247.PP
248\fI% xxd \-i \< файл\fR
249.PP
250Команда
251.I xxd \-s \+seek
252может отличаться от
253.I xxd \-s seek,
RestorerZ12333ba2024-08-20 19:57:00 +0200254поскольку для того, чтобы "отмотать" данные на входе назад, используется вызов
255функции lseek(2).
256При указании параметра '+' поведение будет отличаться, если входные данные
257поступают со стандартного потока ввода, а позиция в файле стандартного ввода
258не находится в начале файла к тому моменту, когда программа xxd запущена
259и приступает к чтению ввода.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000260Нижеследующие примеры помогут прояснить (или ещё больше запутать!) ситуацию...
261.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200262Отмотка потока стандартного ввода назад необходима, поскольку программа 'cat'
263уже выполнила чтение данных до конца из стандартного потока ввода:
Bram Moolenaar217ad922005-03-20 22:37:15 +0000264.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200265\fI% sh \-c "cat > plain_copy; xxd \-s 0 > hex_copy" < file\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000266.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200267Вывод шестнадцатеричного представления от позиции в файле 0x480 (=1024+128).
268Параметр '+' означает "относительно текущей позиции", таким образом '128'
269добавляется к первому килобайту, где завершает работу программа dd:
Bram Moolenaar217ad922005-03-20 22:37:15 +0000270.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200271\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +128 \> hex_snippet" < file\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000272.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200273Вывод шестнадцатеричного представления от позиции в файле 0x100 (=1024\[mi]768):
Bram Moolenaar217ad922005-03-20 22:37:15 +0000274.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200275\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +\-768 \> hex_snippet" < file\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000276.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200277В то же время, следует заметить, что подобные ситуации встречаются довольно
278редко, так что параметр '+' обычно не используется. Автор предпочитает наблюдать
279за работой программы xxd с помощью инструментов strace(1) или truss(1) в тех
280случаях, когда применяется аргумент
Bram Moolenaar217ad922005-03-20 22:37:15 +0000281\-s.
282.SH ПРИМЕРЫ
283.PP
284.br
RestorerZ12333ba2024-08-20 19:57:00 +0200285Вывести всё, кроме первых трёх строк (0x30 байт)
286.BR файла
Bram Moolenaar217ad922005-03-20 22:37:15 +0000287:
RestorerZ12333ba2024-08-20 19:57:00 +0200288.br
289\fI% xxd \-s 0x30 file\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000290.PP
291.br
RestorerZ12333ba2024-08-20 19:57:00 +0200292Вывести три строки (0x30 байт) от конца
293.BR файла
Bram Moolenaar217ad922005-03-20 22:37:15 +0000294:
RestorerZ12333ba2024-08-20 19:57:00 +0200295.br
296\fI% xxd \-s \-0x30 file\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000297.PP
298.br
RestorerZ12333ba2024-08-20 19:57:00 +0200299Вывести 120 байт в виде непрерывного шестнадцатеричного представления
300по 20 октетов в строке
301.br
302(этот пример для справочника xxd.1 на английском языке, для русского языка будет
303немного другой результат):
304.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000305\fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR
306.br
RestorerZ12333ba2024-08-20 19:57:00 +02003072e544820585844203120224d6179203230323422
Bram Moolenaar217ad922005-03-20 22:37:15 +0000308.br
RestorerZ12333ba2024-08-20 19:57:00 +020030920224d616e75616c207061676520666f72207878
Bram Moolenaar217ad922005-03-20 22:37:15 +0000310.br
RestorerZ12333ba2024-08-20 19:57:00 +020031164220a2e5c220a2e5c222032317374204d617920
Bram Moolenaar217ad922005-03-20 22:37:15 +0000312.br
RestorerZ12333ba2024-08-20 19:57:00 +0200313313939360a2e5c22204d616e2070616765206175
Bram Moolenaar217ad922005-03-20 22:37:15 +0000314.br
RestorerZ12333ba2024-08-20 19:57:00 +020031574686f723a0a2e5c2220202020546f6e79204e75
Bram Moolenaar217ad922005-03-20 22:37:15 +0000316.br
RestorerZ12333ba2024-08-20 19:57:00 +020031767656e74203c746f6e79407363746e7567656e2e
Bram Moolenaar217ad922005-03-20 22:37:15 +0000318.br
RestorerZ12333ba2024-08-20 19:57:00 +0200319
Bram Moolenaar217ad922005-03-20 22:37:15 +0000320.br
RestorerZ12333ba2024-08-20 19:57:00 +0200321Вывести первые 120 байт этого справочника по 12 октетов в строке
322.br
323(этот пример для справочника xxd.1 на английском языке, для русского языка будет
324немного другой результат):
325.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000326\fI% xxd \-l 120 \-c 12 xxd.1\fR
327.br
RestorerZ12333ba2024-08-20 19:57:00 +020032800000000: 2e54 4820 5858 4420 3120 224d .TH XXD 1 "M
Bram Moolenaar217ad922005-03-20 22:37:15 +0000329.br
RestorerZ12333ba2024-08-20 19:57:00 +02003300000000c: 6179 2032 3032 3422 2022 4d61 ay 2024" "Ma
Bram Moolenaar217ad922005-03-20 22:37:15 +0000331.br
RestorerZ12333ba2024-08-20 19:57:00 +020033200000018: 6e75 616c 2070 6167 6520 666f nual page fo
Bram Moolenaar217ad922005-03-20 22:37:15 +0000333.br
RestorerZ12333ba2024-08-20 19:57:00 +020033400000024: 7220 7878 6422 0a2e 5c22 0a2e r xxd"..\\"..
Bram Moolenaar217ad922005-03-20 22:37:15 +0000335.br
RestorerZ12333ba2024-08-20 19:57:00 +020033600000030: 5c22 2032 3173 7420 4d61 7920 \\" 21st May
Bram Moolenaar217ad922005-03-20 22:37:15 +0000337.br
RestorerZ12333ba2024-08-20 19:57:00 +02003380000003c: 3139 3936 0a2e 5c22 204d 616e 1996..\\" Man
Bram Moolenaar217ad922005-03-20 22:37:15 +0000339.br
RestorerZ12333ba2024-08-20 19:57:00 +020034000000048: 2070 6167 6520 6175 7468 6f72 page author
Bram Moolenaar217ad922005-03-20 22:37:15 +0000341.br
RestorerZ12333ba2024-08-20 19:57:00 +020034200000054: 3a0a 2e5c 2220 2020 2054 6f6e :..\\" Ton
Bram Moolenaar217ad922005-03-20 22:37:15 +0000343.br
RestorerZ12333ba2024-08-20 19:57:00 +020034400000060: 7920 4e75 6765 6e74 203c 746f y Nugent <to
Bram Moolenaar217ad922005-03-20 22:37:15 +0000345.br
RestorerZ12333ba2024-08-20 19:57:00 +02003460000006c: 6e79 4073 6374 6e75 6765 6e2e ny@sctnugen.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000347.PP
348.br
RestorerZ12333ba2024-08-20 19:57:00 +0200349Показать дату из файла
350.B xxd.1
Bram Moolenaar217ad922005-03-20 22:37:15 +0000351.br
RestorerZ12333ba2024-08-20 19:57:00 +0200352(этот пример для справочника xxd.1 на английском языке, для русского языка будет
353немного другая команда, например, для UTF-8 \[em] \flxxd \-s 0x50 \-l 13 \-c 13 xxd.1\fR):
354.PP
355\fI% xxd \-s 0x33 \-l 13 \-c 13 xxd.1\fR
356.br
35700000033: 3231 7374 204d 6179 2031 3939 36 21st May 1996
Bram Moolenaar217ad922005-03-20 22:37:15 +0000358.PP
359.br
360Скопировать
361.B входной_файл
362в
363.B выходной_файл
RestorerZ12333ba2024-08-20 19:57:00 +0200364с добавлением 100 байт со значением 0x00 в начало файла:
365.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000366\fI% xxd входной_файл | xxd \-r \-s 100 \> выходной_файл\fR
367.br
RestorerZ12333ba2024-08-20 19:57:00 +0200368
369.br
370Заменить дату в файле
371.B xxd.1
372.br
373(этот пример для справочника xxd.1 на английском языке, для русского языка будут
374немного другие команды):
375.PP
376\fI% echo "0000034: 3574 68" | xxd \-r \- xxd.1\fR
377.br
378\fI% xxd \-s 0x33 \-l 13 \-c 13 xxd.1\fR
379.br
38000000033: 3235 7468 204d 6179 2031 3939 36 25th May 1996
Bram Moolenaar217ad922005-03-20 22:37:15 +0000381.PP
382.br
RestorerZ12333ba2024-08-20 19:57:00 +0200383Создать 65537-байтный файл, все байты которого имеют значение 0x00,
384кроме последнего байта, который должен иметь значение 'A' (0x41):
Bram Moolenaar217ad922005-03-20 22:37:15 +0000385.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200386\fI% echo "010000: 41" | xxd \-r > file\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000387.PP
388.br
389Создать шестнадцатеричное представление этого файла с
390использованием автоматического пропуска:
391.PP
392\fI% xxd \-a \-c 12 file\fR
393.br
RestorerZ12333ba2024-08-20 19:57:00 +020039400000000: 0000 0000 0000 0000 0000 0000 ............
Bram Moolenaar217ad922005-03-20 22:37:15 +0000395.br
396*
397.br
RestorerZ12333ba2024-08-20 19:57:00 +02003980000fffc: 0000 0000 41 ....A
Bram Moolenaar217ad922005-03-20 22:37:15 +0000399.PP
400Создать 1-байтный файл, содержащий символ 'A'.
RestorerZ12333ba2024-08-20 19:57:00 +0200401Число после аргументов '\-r \-s' добавляется к номерам строк, найденным в файле,
Bram Moolenaar217ad922005-03-20 22:37:15 +0000402иначе говоря, предшествующие байты пропускаются:
403.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200404\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 > file\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000405.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200406Программу xxd можно использовать в качестве фильтра в редакторе, например в
407.B vim(1)
408, чтобы создать шестнадцатеричное представление области между
409закладками 'a' и 'z':
410.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000411\fI:'a,'z!xxd\fR
412.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200413Можно использовать программу xxd в качестве фильтра в редакторе, например в
414.B vim(1)
415, для восстановления данных из шестнадцатеричного представления
416между закладками 'a' и 'z':
417.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000418\fI:'a,'z!xxd \-r\fR
419.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200420Можно использовать программу xxd в качестве фильтра в редакторе, например в
421.B vim(1)
422, для восстановления данных из единственной строки
Bram Moolenaar217ad922005-03-20 22:37:15 +0000423шестнадцатеричного представления. Поместите курсор в соответствующую строку
424и наберите
RestorerZ12333ba2024-08-20 19:57:00 +0200425.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000426\fI!!xxd \-r\fR
427.PP
428Чтобы прочитать единственный символ из канала связи:
RestorerZ12333ba2024-08-20 19:57:00 +0200429.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000430\fI% xxd \-c1 < /dev/term/b &\fR
431.br
432\fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR
433.br
RestorerZ12333ba2024-08-20 19:57:00 +0200434\fI% echo \-n foo \> /dev/term/b\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000435.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200436.SH КОДЫ ЗАВЕРШЕНИЯ
437При завершении работы, программа xxd возвращает следующие значения:
Bram Moolenaar217ad922005-03-20 22:37:15 +0000438.TP
4390
440Ошибки не обнаружены.
441.TP
442\-1
443Операция не поддерживается (выполнение
RestorerZ12333ba2024-08-20 19:57:00 +0200444.I \%xxd \-r \-i
Bram Moolenaar217ad922005-03-20 22:37:15 +0000445пока невозможно).
446.TP
4471
RestorerZ12333ba2024-08-20 19:57:00 +0200448Ошибка при разборе аргументов командной строки.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000449.TP
4502
RestorerZ12333ba2024-08-20 19:57:00 +0200451Ошибки во входном файле.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000452.TP
4533
RestorerZ12333ba2024-08-20 19:57:00 +0200454Ошибки в выходном файле.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000455.TP
4564,5
457Желательная позиция поиска недостижима.
RestorerZ12333ba2024-08-20 19:57:00 +0200458.SH СМОТРИТЕ ТАКЖЕ
Bram Moolenaar217ad922005-03-20 22:37:15 +0000459uuencode(1), uudecode(1), patch(1)
460.br
461.SH ПРЕДУПРЕЖДЕНИЕ
462Странность этой программы соответствует особенностям мозга её создателя.
RestorerZ12333ba2024-08-20 19:57:00 +0200463Используйте её на свой страх и риск. Копируйте файлы, отслеживайте вызовы,
464становитесь волшебником.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000465.br
466.SH ВЕРСИЯ
RestorerZ12333ba2024-08-20 19:57:00 +0200467Этот справочник документирует программу xxd версии 1.7 от 2024-05.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000468.SH АВТОР
469.br
RestorerZ12333ba2024-08-20 19:57:00 +0200470(c) Юрген Вайгерт (Juergen Weigert), 1990-1997
Bram Moolenaar217ad922005-03-20 22:37:15 +0000471.br
RestorerZ12333ba2024-08-20 19:57:00 +0200472<jnweiger@informatik.uni\-erlangen.de>
Bram Moolenaar217ad922005-03-20 22:37:15 +0000473.LP
474Вы можете свободно распространять программу со ссылкой на меня.
475.br
RestorerZ12333ba2024-08-20 19:57:00 +0200476Если использование этой программы принесло вам какой-то доход, поделитесь со
477мной.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000478.br
RestorerZ12333ba2024-08-20 19:57:00 +0200479Если вы потеряли деньги, то я тут ни при чём.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000480.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200481Первый вариант справочника написан Тони Наджентом (Tony Nugent)
Bram Moolenaar217ad922005-03-20 22:37:15 +0000482.br
483<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
484.br
RestorerZ12333ba2024-08-20 19:57:00 +0200485Небольшие изменения внесены Брамом Моленаром (Bram Moolenaar).
486Справочник отредактирован Юргеном Вайгертом (Juergen Weigert).
Bram Moolenaar217ad922005-03-20 22:37:15 +0000487.PP