blob: 65586dd08aa22c140800de072d20b86d5e19b1d0 [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предваряется её номером в шестнадцатеричном виде, а завершается в виде символов
76в кодировке ASCII (или в кодировке EBCDIC). Аргументы командной строки
77\-p, \-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
RestorerZ12333ba2024-08-20 19:57:00 +0200135Создавать вывод в стиле подключаемых заголовочных файлов языка Си.
136Вывод содержит полноценное определение статического массива данных, название
137которого соответствует наименованию входного файла, если программа xxd
138не считывает данные из стандартного потока ввода.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000139.TP
140.IR "\-l длина " | " \-len длина"
RestorerZ12333ba2024-08-20 19:57:00 +0200141Указывает, что после записи заданного в параметре
Bram Moolenaar217ad922005-03-20 22:37:15 +0000142.RI < длина >
RestorerZ12333ba2024-08-20 19:57:00 +0200143количества октетов, работа программы будет завершена.
144.TP
145.I "\-n название " | " \-name название"
146Изменить возвращаемое наименование переменной при использовании аргумента \-i.
147Применяется к массиву байт, который будет именоваться как \fIназвание\fP и длина
148файла как \fIназвание\fP_len.
149.TP
150.I \-o смещение
151Указывает добавить
152.RI < смещение >
153в отображаемую позицию файла.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000154.TP
155.IR \-p " | " \-ps " | " \-postscript " | " \-plain
RestorerZ12333ba2024-08-20 19:57:00 +0200156Использовать непрерывный формата вывода шестнадцатеричного кода,
157известного как "простой" стиль или стиль "PostScript".
Bram Moolenaar217ad922005-03-20 22:37:15 +0000158.TP
159.IR \-r " | " \-revert
RestorerZ12333ba2024-08-20 19:57:00 +0200160Выполнить операцию обратного преобразования, т. е. преобразование
161шестнадцатеричного представления в двоичный код (или применить результат
162в качестве исправления).
163Если вывод происходит не в стандартного поток вывода, то программа xxd выполняет
164добавление кода к выходному файлу. При использовании комбинации аргументов
Bram Moolenaar217ad922005-03-20 22:37:15 +0000165.I \-r \-p
166происходит чтение "простого" шестнадцатеричного представления без использования
RestorerZ12333ba2024-08-20 19:57:00 +0200167информации о номерах строк и какого-либо специального распределения колонок.
168Пробелы и символы новой строки могут встречаться в любом месте исходных данных.
169При использовании комбинации аргументов
170.I \-r \-b
171будет происходить считывание двоичного представления вместо шестнадцатеричного.
172.TP
173.IR \-R " " когда
174В выходных данных одни и те же шестнадцатеричные значения и строковые значения
175будут подсвечиваться одним и тем же цветом. В основном это помогает различать
176печатаемые и непечатаемые символы.
177Где
178.I \fIкогда\fP
179может принимать значение
180.BR never " (никогда), " always " (всегда), или " auto " (автовыбор, по умолчанию).
181Если установлена переменная окружения
182.BR $NO_COLOR
183, то цветовая подсветка будет отключена.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000184.TP
185.I \-seek смещение
RestorerZ12333ba2024-08-20 19:57:00 +0200186При указании после аргумента
Bram Moolenaar217ad922005-03-20 22:37:15 +0000187.I \-r
RestorerZ12333ba2024-08-20 19:57:00 +0200188, будет добавляться указанное
Bram Moolenaar217ad922005-03-20 22:37:15 +0000189.RI < смещение >
190к файловым позициям, обнаруженным в исходных данных.
191.TP
RestorerZ12333ba2024-08-20 19:57:00 +0200192.I \-s [+][\-]seek
193Начинать обработку с указанного абсолютного (или относительного)
Bram Moolenaar217ad922005-03-20 22:37:15 +0000194.RI < смещения >
195в байтах во входном_файле.
RestorerZ12333ba2024-08-20 19:57:00 +0200196Где \fI+ \fRуказывает, что смещение является относительным по отношению
197к текущей позиции данных в стандартном потоке ввода (бессмысленно, если чтение
198происходит не из стандартного потока ввода). А параметр \fI\- \fRуказывает,
199что должно быть прочитано указанное количество символов от конца ввода (либо,
200если одновременно с параметром \fI+\fR, то перед текущей позицией данных
201в стандартном потоке ввода).
202Если аргумент \-s не используется, то программа xxd начинает обработку
203от текущей позиции в файле.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000204.TP
205.I \-u
RestorerZ12333ba2024-08-20 19:57:00 +0200206Указывает, что в выводе отображать шестнадцатеричные цифры в верхнем регистре.
207По умолчанию используются символы в нижнем регистре символов.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000208.TP
209.IR \-v " | " \-version
RestorerZ12333ba2024-08-20 19:57:00 +0200210Показать информацию о версии программы и завершить работу.
211.SH НЕКОТОРЫЕ РАЗЪЯСНЕНИЯ
Bram Moolenaar217ad922005-03-20 22:37:15 +0000212.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200213При указании команды
Bram Moolenaar217ad922005-03-20 22:37:15 +0000214.I xxd \-r
RestorerZ12333ba2024-08-20 19:57:00 +0200215при запуске программы, будет применяться некий встроенный алгоритм
216для распознавания информации о номерах строк.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000217Если возможен поиск по входному файлу, то номера строк в начале каждой строки
RestorerZ12333ba2024-08-20 19:57:00 +0200218шестнадцатеричного представления могут быть неупорядоченными, некоторые строки
219могут быть пропущены или пересекаться друг с другом. В этих случаях программа
220xxd использует функцию lseek(2) для перехода к следующей позиции. Если поиск по
221входному файлу невозможен, то допустимы только пропуски строк, которые
222заполняются нулевыми байтами.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000223.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200224Использование команды
Bram Moolenaar217ad922005-03-20 22:37:15 +0000225.I xxd \-r
RestorerZ12333ba2024-08-20 19:57:00 +0200226приводит к тому, что сообщения об ошибках не будут отображаться.
227Посторонние данные просто молча пропускаются.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000228.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200229При редактировании шестнадцатеричного представления двоичных файлов, обращайте
230внимание, что по команде
Bram Moolenaar217ad922005-03-20 22:37:15 +0000231.I xxd \-r
RestorerZ12333ba2024-08-20 19:57:00 +0200232, после считывания достаточного количества колонок шестнадцатеричных данных
233(см. аргумент \-c), в строке ввода не будут обрабатываться остальные данные.
234Это означает, что изменения, внесённые в колонке с текстом в кодировке
235ASCII (или EBCDIC), всегда игнорируются.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000236При обратном преобразовании шестнадцатеричного представления в стиле
RestorerZ12333ba2024-08-20 19:57:00 +0200237PostScript с помощью команды xxd \-r \-p количество колонок не учитывается.
238В этом случае распознаются все символы, которые похожи на пары шестнадцатеричных
239цифр.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000240.PP
241Обратите внимание на различие между командами
242.PP
243\fI% xxd \-i файл\fR
244.PP
245и
246.PP
247\fI% xxd \-i \< файл\fR
248.PP
249Команда
250.I xxd \-s \+seek
251может отличаться от
252.I xxd \-s seek,
RestorerZ12333ba2024-08-20 19:57:00 +0200253поскольку для того, чтобы "отмотать" данные на входе назад, используется вызов
254функции lseek(2).
255При указании параметра '+' поведение будет отличаться, если входные данные
256поступают со стандартного потока ввода, а позиция в файле стандартного ввода
257не находится в начале файла к тому моменту, когда программа xxd запущена
258и приступает к чтению ввода.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000259Нижеследующие примеры помогут прояснить (или ещё больше запутать!) ситуацию...
260.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200261Отмотка потока стандартного ввода назад необходима, поскольку программа 'cat'
262уже выполнила чтение данных до конца из стандартного потока ввода:
Bram Moolenaar217ad922005-03-20 22:37:15 +0000263.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200264\fI% sh \-c "cat > plain_copy; xxd \-s 0 > hex_copy" < file\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000265.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200266Вывод шестнадцатеричного представления от позиции в файле 0x480 (=1024+128).
267Параметр '+' означает "относительно текущей позиции", таким образом '128'
268добавляется к первому килобайту, где завершает работу программа dd:
Bram Moolenaar217ad922005-03-20 22:37:15 +0000269.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200270\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 +0000271.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200272Вывод шестнадцатеричного представления от позиции в файле 0x100 (=1024\[mi]768):
Bram Moolenaar217ad922005-03-20 22:37:15 +0000273.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200274\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 +0000275.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200276В то же время, следует заметить, что подобные ситуации встречаются довольно
277редко, так что параметр '+' обычно не используется. Автор предпочитает наблюдать
278за работой программы xxd с помощью инструментов strace(1) или truss(1) в тех
279случаях, когда применяется аргумент
Bram Moolenaar217ad922005-03-20 22:37:15 +0000280\-s.
281.SH ПРИМЕРЫ
282.PP
283.br
RestorerZ12333ba2024-08-20 19:57:00 +0200284Вывести всё, кроме первых трёх строк (0x30 байт)
285.BR файла
Bram Moolenaar217ad922005-03-20 22:37:15 +0000286:
RestorerZ12333ba2024-08-20 19:57:00 +0200287.br
288\fI% xxd \-s 0x30 file\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000289.PP
290.br
RestorerZ12333ba2024-08-20 19:57:00 +0200291Вывести три строки (0x30 байт) от конца
292.BR файла
Bram Moolenaar217ad922005-03-20 22:37:15 +0000293:
RestorerZ12333ba2024-08-20 19:57:00 +0200294.br
295\fI% xxd \-s \-0x30 file\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000296.PP
297.br
RestorerZ12333ba2024-08-20 19:57:00 +0200298Вывести 120 байт в виде непрерывного шестнадцатеричного представления
299по 20 октетов в строке
300.br
301(этот пример для справочника xxd.1 на английском языке, для русского языка будет
302немного другой результат):
303.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000304\fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR
305.br
RestorerZ12333ba2024-08-20 19:57:00 +02003062e544820585844203120224d6179203230323422
Bram Moolenaar217ad922005-03-20 22:37:15 +0000307.br
RestorerZ12333ba2024-08-20 19:57:00 +020030820224d616e75616c207061676520666f72207878
Bram Moolenaar217ad922005-03-20 22:37:15 +0000309.br
RestorerZ12333ba2024-08-20 19:57:00 +020031064220a2e5c220a2e5c222032317374204d617920
Bram Moolenaar217ad922005-03-20 22:37:15 +0000311.br
RestorerZ12333ba2024-08-20 19:57:00 +0200312313939360a2e5c22204d616e2070616765206175
Bram Moolenaar217ad922005-03-20 22:37:15 +0000313.br
RestorerZ12333ba2024-08-20 19:57:00 +020031474686f723a0a2e5c2220202020546f6e79204e75
Bram Moolenaar217ad922005-03-20 22:37:15 +0000315.br
RestorerZ12333ba2024-08-20 19:57:00 +020031667656e74203c746f6e79407363746e7567656e2e
Bram Moolenaar217ad922005-03-20 22:37:15 +0000317.br
RestorerZ12333ba2024-08-20 19:57:00 +0200318
Bram Moolenaar217ad922005-03-20 22:37:15 +0000319.br
RestorerZ12333ba2024-08-20 19:57:00 +0200320Вывести первые 120 байт этого справочника по 12 октетов в строке
321.br
322(этот пример для справочника xxd.1 на английском языке, для русского языка будет
323немного другой результат):
324.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000325\fI% xxd \-l 120 \-c 12 xxd.1\fR
326.br
RestorerZ12333ba2024-08-20 19:57:00 +020032700000000: 2e54 4820 5858 4420 3120 224d .TH XXD 1 "M
Bram Moolenaar217ad922005-03-20 22:37:15 +0000328.br
RestorerZ12333ba2024-08-20 19:57:00 +02003290000000c: 6179 2032 3032 3422 2022 4d61 ay 2024" "Ma
Bram Moolenaar217ad922005-03-20 22:37:15 +0000330.br
RestorerZ12333ba2024-08-20 19:57:00 +020033100000018: 6e75 616c 2070 6167 6520 666f nual page fo
Bram Moolenaar217ad922005-03-20 22:37:15 +0000332.br
RestorerZ12333ba2024-08-20 19:57:00 +020033300000024: 7220 7878 6422 0a2e 5c22 0a2e r xxd"..\\"..
Bram Moolenaar217ad922005-03-20 22:37:15 +0000334.br
RestorerZ12333ba2024-08-20 19:57:00 +020033500000030: 5c22 2032 3173 7420 4d61 7920 \\" 21st May
Bram Moolenaar217ad922005-03-20 22:37:15 +0000336.br
RestorerZ12333ba2024-08-20 19:57:00 +02003370000003c: 3139 3936 0a2e 5c22 204d 616e 1996..\\" Man
Bram Moolenaar217ad922005-03-20 22:37:15 +0000338.br
RestorerZ12333ba2024-08-20 19:57:00 +020033900000048: 2070 6167 6520 6175 7468 6f72 page author
Bram Moolenaar217ad922005-03-20 22:37:15 +0000340.br
RestorerZ12333ba2024-08-20 19:57:00 +020034100000054: 3a0a 2e5c 2220 2020 2054 6f6e :..\\" Ton
Bram Moolenaar217ad922005-03-20 22:37:15 +0000342.br
RestorerZ12333ba2024-08-20 19:57:00 +020034300000060: 7920 4e75 6765 6e74 203c 746f y Nugent <to
Bram Moolenaar217ad922005-03-20 22:37:15 +0000344.br
RestorerZ12333ba2024-08-20 19:57:00 +02003450000006c: 6e79 4073 6374 6e75 6765 6e2e ny@sctnugen.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000346.PP
347.br
RestorerZ12333ba2024-08-20 19:57:00 +0200348Показать дату из файла
349.B xxd.1
Bram Moolenaar217ad922005-03-20 22:37:15 +0000350.br
RestorerZ12333ba2024-08-20 19:57:00 +0200351(этот пример для справочника xxd.1 на английском языке, для русского языка будет
352немного другая команда, например, для UTF-8 \[em] \flxxd \-s 0x50 \-l 13 \-c 13 xxd.1\fR):
353.PP
354\fI% xxd \-s 0x33 \-l 13 \-c 13 xxd.1\fR
355.br
35600000033: 3231 7374 204d 6179 2031 3939 36 21st May 1996
Bram Moolenaar217ad922005-03-20 22:37:15 +0000357.PP
358.br
359Скопировать
360.B входной_файл
361в
362.B выходной_файл
RestorerZ12333ba2024-08-20 19:57:00 +0200363с добавлением 100 байт со значением 0x00 в начало файла:
364.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000365\fI% xxd входной_файл | xxd \-r \-s 100 \> выходной_файл\fR
366.br
RestorerZ12333ba2024-08-20 19:57:00 +0200367
368.br
369Заменить дату в файле
370.B xxd.1
371.br
372(этот пример для справочника xxd.1 на английском языке, для русского языка будут
373немного другие команды):
374.PP
375\fI% echo "0000034: 3574 68" | xxd \-r \- xxd.1\fR
376.br
377\fI% xxd \-s 0x33 \-l 13 \-c 13 xxd.1\fR
378.br
37900000033: 3235 7468 204d 6179 2031 3939 36 25th May 1996
Bram Moolenaar217ad922005-03-20 22:37:15 +0000380.PP
381.br
RestorerZ12333ba2024-08-20 19:57:00 +0200382Создать 65537-байтный файл, все байты которого имеют значение 0x00,
383кроме последнего байта, который должен иметь значение 'A' (0x41):
Bram Moolenaar217ad922005-03-20 22:37:15 +0000384.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200385\fI% echo "010000: 41" | xxd \-r > file\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000386.PP
387.br
388Создать шестнадцатеричное представление этого файла с
389использованием автоматического пропуска:
390.PP
391\fI% xxd \-a \-c 12 file\fR
392.br
RestorerZ12333ba2024-08-20 19:57:00 +020039300000000: 0000 0000 0000 0000 0000 0000 ............
Bram Moolenaar217ad922005-03-20 22:37:15 +0000394.br
395*
396.br
RestorerZ12333ba2024-08-20 19:57:00 +02003970000fffc: 0000 0000 41 ....A
Bram Moolenaar217ad922005-03-20 22:37:15 +0000398.PP
399Создать 1-байтный файл, содержащий символ 'A'.
RestorerZ12333ba2024-08-20 19:57:00 +0200400Число после аргументов '\-r \-s' добавляется к номерам строк, найденным в файле,
Bram Moolenaar217ad922005-03-20 22:37:15 +0000401иначе говоря, предшествующие байты пропускаются:
402.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200403\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 > file\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000404.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200405Программу xxd можно использовать в качестве фильтра в редакторе, например в
406.B vim(1)
407, чтобы создать шестнадцатеричное представление области между
408закладками 'a' и 'z':
409.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000410\fI:'a,'z!xxd\fR
411.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200412Можно использовать программу xxd в качестве фильтра в редакторе, например в
413.B vim(1)
414, для восстановления данных из шестнадцатеричного представления
415между закладками 'a' и 'z':
416.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000417\fI:'a,'z!xxd \-r\fR
418.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200419Можно использовать программу xxd в качестве фильтра в редакторе, например в
420.B vim(1)
421, для восстановления данных из единственной строки
Bram Moolenaar217ad922005-03-20 22:37:15 +0000422шестнадцатеричного представления. Поместите курсор в соответствующую строку
423и наберите
RestorerZ12333ba2024-08-20 19:57:00 +0200424.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000425\fI!!xxd \-r\fR
426.PP
427Чтобы прочитать единственный символ из канала связи:
RestorerZ12333ba2024-08-20 19:57:00 +0200428.br
Bram Moolenaar217ad922005-03-20 22:37:15 +0000429\fI% xxd \-c1 < /dev/term/b &\fR
430.br
431\fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR
432.br
RestorerZ12333ba2024-08-20 19:57:00 +0200433\fI% echo \-n foo \> /dev/term/b\fR
Bram Moolenaar217ad922005-03-20 22:37:15 +0000434.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200435.SH КОДЫ ЗАВЕРШЕНИЯ
436При завершении работы, программа xxd возвращает следующие значения:
Bram Moolenaar217ad922005-03-20 22:37:15 +0000437.TP
4380
439Ошибки не обнаружены.
440.TP
441\-1
442Операция не поддерживается (выполнение
RestorerZ12333ba2024-08-20 19:57:00 +0200443.I \%xxd \-r \-i
Bram Moolenaar217ad922005-03-20 22:37:15 +0000444пока невозможно).
445.TP
4461
RestorerZ12333ba2024-08-20 19:57:00 +0200447Ошибка при разборе аргументов командной строки.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000448.TP
4492
RestorerZ12333ba2024-08-20 19:57:00 +0200450Ошибки во входном файле.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000451.TP
4523
RestorerZ12333ba2024-08-20 19:57:00 +0200453Ошибки в выходном файле.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000454.TP
4554,5
456Желательная позиция поиска недостижима.
RestorerZ12333ba2024-08-20 19:57:00 +0200457.SH СМОТРИТЕ ТАКЖЕ
Bram Moolenaar217ad922005-03-20 22:37:15 +0000458uuencode(1), uudecode(1), patch(1)
459.br
460.SH ПРЕДУПРЕЖДЕНИЕ
461Странность этой программы соответствует особенностям мозга её создателя.
RestorerZ12333ba2024-08-20 19:57:00 +0200462Используйте её на свой страх и риск. Копируйте файлы, отслеживайте вызовы,
463становитесь волшебником.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000464.br
465.SH ВЕРСИЯ
RestorerZ12333ba2024-08-20 19:57:00 +0200466Этот справочник документирует программу xxd версии 1.7 от 2024-05.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000467.SH АВТОР
468.br
RestorerZ12333ba2024-08-20 19:57:00 +0200469(c) Юрген Вайгерт (Juergen Weigert), 1990-1997
Bram Moolenaar217ad922005-03-20 22:37:15 +0000470.br
RestorerZ12333ba2024-08-20 19:57:00 +0200471<jnweiger@informatik.uni\-erlangen.de>
Bram Moolenaar217ad922005-03-20 22:37:15 +0000472.LP
473Вы можете свободно распространять программу со ссылкой на меня.
474.br
RestorerZ12333ba2024-08-20 19:57:00 +0200475Если использование этой программы принесло вам какой-то доход, поделитесь со
476мной.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000477.br
RestorerZ12333ba2024-08-20 19:57:00 +0200478Если вы потеряли деньги, то я тут ни при чём.
Bram Moolenaar217ad922005-03-20 22:37:15 +0000479.PP
RestorerZ12333ba2024-08-20 19:57:00 +0200480Первый вариант справочника написан Тони Наджентом (Tony Nugent)
Bram Moolenaar217ad922005-03-20 22:37:15 +0000481.br
482<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
483.br
RestorerZ12333ba2024-08-20 19:57:00 +0200484Небольшие изменения внесены Брамом Моленаром (Bram Moolenaar).
485Справочник отредактирован Юргеном Вайгертом (Juergen Weigert).
Bram Moolenaar217ad922005-03-20 22:37:15 +0000486.PP