mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 21:25:04 -07:00
a98a6996c2
Vim runtime files based on 7.4.384 / hg changeset 7090d7f160f7 Excluding: Amiga icons (*.info, icons/) doc/hangulin.txt tutor/ spell/ lang/ (only used for menu translations) macros/maze/, macros/hanoi/, macros/life/, macros/urm/ These were used to test vi compatibility. termcap "Demonstration of a termcap file (for the Amiga and Archimedes)" Helped-by: Rich Wareham <rjw57@cam.ac.uk> Helped-by: John <john.schmidt.h@gmail.com> Helped-by: Yann <yann@yann-salaun.com> Helped-by: Christophe Badoit <c.badoit@lesiteimmo.com> Helped-by: drasill <github@tof2k.com> Helped-by: Tae Sandoval Murgan <taecilla@gmail.com> Helped-by: Lowe Thiderman <lowe.thiderman@gmail.com>
409 lines
20 KiB
Groff
409 lines
20 KiB
Groff
.TH XXD 1 "August 1996" "Страница man для xxd"
|
||
.\"
|
||
.\" 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>
|
||
.SH ИМЯ
|
||
.I xxd
|
||
\- создаёт представление файла в виде шестнадцатеричных кодов или выполняет
|
||
обратное преобразование.
|
||
.SH КОМАНДНАЯ СТРОКА
|
||
.B xxd
|
||
\-h[elp]
|
||
.br
|
||
.B xxd
|
||
[ключи] [входной_файл [выходной_файл]]
|
||
.br
|
||
.B xxd
|
||
\-r[evert] [ключи] [входной_файл [выходной_файл]]
|
||
.SH ОПИСАНИЕ
|
||
.I xxd
|
||
создаёт представление указанного файла или данных, прочитанных из потока
|
||
стандартного ввода, в виде шестнадцатеричных кодов. Эта команда также может
|
||
выполнить обратное преобразование заданных шестнадцатеричными кодами данных
|
||
в исходный бинарный формат.
|
||
Подобно командам
|
||
.BR uuencode(1)
|
||
и
|
||
.BR uudecode(1),
|
||
она позволяет выполнять преобразование бинарных данных в ASCII-код,
|
||
который можно передавать по электронной почте, однако, помимо этого, программа
|
||
xxd позволяет выполнять декодирование в поток стандартного вывода,
|
||
а также может применяться для создания заплаток для бинарных файлов.
|
||
.SH КЛЮЧИ ЗАПУСКА
|
||
Если
|
||
.I входной_файл
|
||
не задан, то соответствующие данные читаются из потока стандартного ввода.
|
||
В случае, если в качестве
|
||
.I входного_файла
|
||
используется символ
|
||
.RB \` \- ',
|
||
источником данных также выступает поток стандартного ввода.
|
||
В том случае, если не указан
|
||
.I выходной_файл
|
||
(или вместо него используется символ
|
||
.RB \` \- '
|
||
), результат преобразования направляется в поток стандартного вывода.
|
||
.PP
|
||
Обратите внимание, что используется "ленивый" алгоритм разбора ключей, который не
|
||
проверяет более одной буквы ключа, если в этом ключе не используется параметр.
|
||
Пробелы между единственным символом ключа и соответствующим параметром не являются
|
||
обязательными. Параметры ключей могут быть заданы с использованием десятичного,
|
||
шестнадцатеричного или восьмеричного формата.
|
||
Таким образом, ключи
|
||
.BR \-c8 ,
|
||
.BR "\-c 8" ,
|
||
.B \-c 010
|
||
и
|
||
.B \-cols 8
|
||
являются равнозначными.
|
||
.PP
|
||
.TP
|
||
.IR \-a " | " \-autoskip
|
||
Включает автоматический пропуск: вместо последовательности
|
||
нулевых строк используется одиночный символ '*'. По умолчанию
|
||
не применяется.
|
||
.TP
|
||
.IR \-b " | " \-bits
|
||
Вместо шестнадцатеричного кода используются биты (двоичные цифры).
|
||
При использовании этого ключа вместо обычного шестнадцатеричного представления
|
||
октетов используются наборы из восьми символов "1" и "0". Каждая строка
|
||
предваряется номером строки в шестнадцатеричном виде, а завершается символьным
|
||
представлением (в виде ascii или ebcdic). Ключи \-r, \-p, \-i в этом режиме
|
||
не работают.
|
||
.TP
|
||
.IR "\-c кол " | " \-cols кол"
|
||
Задаёт количество октетов
|
||
.RI < кол >,
|
||
которое выводится на каждой строке. По умолчанию используется значение 16
|
||
(\-i: 12, \-ps: 30, \-b: 6).
|
||
Максимально допустимое значение: 256.
|
||
.TP
|
||
.IR \-E " | " \-EBCDIC
|
||
Изменяет способ кодирования символов в правой колонке с ASCII на EBCDIC. Этот ключ
|
||
не изменяет шестнадцатеричное представление. Данный ключ не имеет смысла,
|
||
если используются ключи \-r, \-p или \-i.
|
||
.TP
|
||
.IR "\-g байт " | " \-groupsize байт"
|
||
Позволяет выполнять группировку указанного количества
|
||
.RI < байтов >
|
||
(две шестнадцатеричные цифры или восемь битов), отделяя группы друг от друга пробелами.
|
||
Значение
|
||
.I \-g 0
|
||
применяется для отказа от использования группировки.
|
||
По умолчанию используется значение
|
||
.RI < байт "> равное " 2
|
||
в обычном режиме и \fI1\fP в битовом режиме. Группировка не применяется
|
||
в режимах postscript и include.
|
||
.TP
|
||
.IR \-h " | " \-help
|
||
Выводит справку по доступным ключам командной строки и завершает работу программы.
|
||
Создание шестнадцатеричного представления не выполняется.
|
||
.TP
|
||
.IR \-i " | " \-include
|
||
Позволяет создавать вывод в стиле подключаемых заголовочных файлов языка C.
|
||
Вывод содержит полноценное определение статического массива данных, имя которого
|
||
соответствует имени входного файла, если xxd не считывает данные из потока стандартного
|
||
ввода.
|
||
.TP
|
||
.IR "\-l длина " | " \-len длина"
|
||
Завершает работу после записи заданного в параметре
|
||
.RI < длина >
|
||
количества октетов.
|
||
.TP
|
||
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
|
||
Использует непрерывный формат вывода шестнадцатеричного кода,
|
||
известный как "простой" стиль или стиль "postscript".
|
||
.TP
|
||
.IR \-r " | " \-revert
|
||
Изменяет смысл операции на противоположный: позволяет выполнять преобразование
|
||
шестнадцатеричного представления в бинарный код (или применять результат в качестве заплаты).
|
||
Если вывод происходит не в поток стандартного вывода, то xxd выполняет добавление кода
|
||
к соответствующему файлу. При использовании комбинации ключей
|
||
.I \-r \-p
|
||
происходит чтение "простого" шестнадцатеричного представления без использования
|
||
информации о номерах строк и какого-либо специального раскроя колонок. Пробелы
|
||
и символы новой строки могут встречаться в любом месте исходных данных.
|
||
.TP
|
||
.I \-seek смещение
|
||
При использовании после ключа
|
||
.I \-r
|
||
: добавлять указанное
|
||
.RI < смещение >
|
||
к файловым позициям, обнаруженным в исходных данных.
|
||
.TP
|
||
.I \-s [\+][\-]seek
|
||
Начинает работу с указанного абсолютного (или относительного)
|
||
.RI < смещения >
|
||
в байтах во входном_файле.
|
||
\fI\+ \fRуказывает, что смещение является относительным по отношению
|
||
к текущей файловой позиции в потоке стандартного ввода (бессмысленно, если чтение
|
||
происходит не из потока стандартного ввода). \fI\- \fRуказывает, что должно быть прочитано
|
||
указанное количество символов от конца ввода (либо, если сочетается с \fI \+ \fR:
|
||
перед текущей позиции файла в потоке стандартного ввода).
|
||
Если ключ \-s не используется, то xxd начинает работу от текущей позиции в файле.
|
||
.TP
|
||
.I \-u
|
||
Использует шестнадцатеричные цифры в верхнем регистре. По умолчанию используются цифры в
|
||
нижнем регистре символов.
|
||
.TP
|
||
.IR \-v " | " \-version
|
||
Отображает информацию о версии программы.
|
||
.SH ПОДВОДНЫЕ КАМНИ
|
||
.PP
|
||
.I xxd \-r
|
||
обладает встроенным интеллектом для распознавания информации о номерах строк.
|
||
Если возможен поиск по входному файлу, то номера строк в начале каждой строки
|
||
шестнадцатеричного представления могут быть неупорядоченными, некоторые строки могут
|
||
быть пропущены или пересекаться друг с другом. В этих случаях xxd использует
|
||
lseek(2) для перехода к следующей позиции. Если поиск по входному файлу
|
||
невозможен, то допустимы только пропуски строк, которые заполняются нулевыми
|
||
байтами.
|
||
.PP
|
||
.I xxd \-r
|
||
никогда не выводит сообщений об ошибках. Мусор пропускается молча.
|
||
.PP
|
||
При редактировании шестнадцатеричных представлений бинарных файлов обращайте
|
||
внимание, что
|
||
.I xxd \-r
|
||
пропускает в строке ввода любые данные после прочтения достаточного количества
|
||
колонок шестнадцатеричных данных (см. ключ \-c). Это означает, что изменения,
|
||
внесенные в колонки с печатными символами ascii (или ebcdic), всегда игнорируются.
|
||
При обратном преобразовании шестнадцатеричного представления в стиле
|
||
postscript с помощью команды xxd \-r \-p количество колонок не учитывается.
|
||
В этом случае распознаются все символы, которые похожи на пары шестнадцатеричных цифр.
|
||
.PP
|
||
Обратите внимание на различие между командами
|
||
.PP
|
||
\fI% xxd \-i файл\fR
|
||
.PP
|
||
и
|
||
.PP
|
||
\fI% xxd \-i \< файл\fR
|
||
.PP
|
||
Команда
|
||
.I xxd \-s \+seek
|
||
может отличаться от
|
||
.I xxd \-s seek,
|
||
поскольку для того, чтобы "отмотать" данные на входе назад, используется вызов lseek(2).
|
||
При использовании `+' поведение будет отличаться, если входные данные
|
||
поступают с потока стандартного ввода, а позиция в файле стандартного ввода не находится
|
||
в начале файла к тому моменту, когда программа xxd запущена и приступает к чтению ввода.
|
||
Нижеследующие примеры помогут прояснить (или ещё больше запутать!) ситуацию...
|
||
.PP
|
||
Отмотка назад потока стандартного ввода; необходимо, поскольку 'cat' уже выполнила
|
||
чтение до конца потока стандартного ввода:
|
||
.PP
|
||
\fI% sh \-c 'cat > plain_copy; xxd \-s 0 > hex_copy' < file
|
||
.PP
|
||
Вывод шестнадцатеричного представления от позиции в файле 0x480
|
||
(= 1024+128).
|
||
Символ `+' означает "относительно текущей позиции", таким образом `128' добавляется
|
||
к первому килобайту, где завершает работу dd:
|
||
.PP
|
||
\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet' < file
|
||
.PP
|
||
Вывод шестнадцатеричного представления от позиции в файле 0x100
|
||
(= 1024-768):
|
||
.PP
|
||
\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +-768 > hex_snippet' < file
|
||
.PP
|
||
В то же время, следует заметить, что подобные ситуации встречаются довольно редко,
|
||
так что символ `+' обычно не используется. Автор предпочитает наблюдать за работой
|
||
xxd с помощью strace(1) или truss(1) в тех случаях, когда применяется ключ
|
||
\-s.
|
||
.SH ПРИМЕРЫ
|
||
.PP
|
||
.br
|
||
Вывести всё, кроме первых трёх строк (0x30 байтов) файла
|
||
.B file
|
||
:
|
||
.PP
|
||
\fI% xxd \-s 0x30 file
|
||
.PP
|
||
.br
|
||
Вывести три строки (0x30 байтов) от конца файла
|
||
.B file
|
||
:
|
||
.PP
|
||
\fI% xxd \-s \-0x30 file
|
||
.PP
|
||
.br
|
||
Вывести 120 байтов в виде непрерывного шестнадцатеричного представления
|
||
по 20 октетов в строке:
|
||
.PP
|
||
\fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR
|
||
.br
|
||
2e544820585844203120224d616e75616c207061
|
||
.br
|
||
676520666f7220787864220a2e5c220a2e5c2220
|
||
.br
|
||
32317374204d617920313939360a2e5c22204d61
|
||
.br
|
||
6e207061676520617574686f723a0a2e5c222020
|
||
.br
|
||
2020546f6e79204e7567656e74203c746f6e7940
|
||
.br
|
||
7363746e7567656e2e7070702e67752e6564752e
|
||
.br
|
||
.PP
|
||
.br
|
||
Вывести первые 120 байтов этой страницы справочника по 12 октетов в строке:
|
||
.PP
|
||
\fI% xxd \-l 120 \-c 12 xxd.1\fR
|
||
.br
|
||
0000000: 2e54 4820 5858 4420 3120 224d .TH XXD 1 "M
|
||
.br
|
||
000000c: 616e 7561 6c20 7061 6765 2066 anual page f
|
||
.br
|
||
0000018: 6f72 2078 7864 220a 2e5c 220a or xxd"..\\".
|
||
.br
|
||
0000024: 2e5c 2220 3231 7374 204d 6179 .\\" 21st May
|
||
.br
|
||
0000030: 2031 3939 360a 2e5c 2220 4d61 1996..\\" Ma
|
||
.br
|
||
000003c: 6e20 7061 6765 2061 7574 686f n page autho
|
||
.br
|
||
0000048: 723a 0a2e 5c22 2020 2020 546f r:..\\" To
|
||
.br
|
||
0000054: 6e79 204e 7567 656e 7420 3c74 ny Nugent <t
|
||
.br
|
||
0000060: 6f6e 7940 7363 746e 7567 656e ony@sctnugen
|
||
.br
|
||
000006c: 2e70 7070 2e67 752e 6564 752e .ppp.gu.edu.
|
||
.PP
|
||
.br
|
||
Показать дату из файла xxd.1:
|
||
.PP
|
||
\fI% xxd \-s 0x28 \-l 12 \-c 12 xxd.1\fR
|
||
.br
|
||
0000028: 3231 7374 204d 6179 2031 3939 21st May 199
|
||
.PP
|
||
.br
|
||
Скопировать
|
||
.B входной_файл
|
||
в
|
||
.B выходной_файл
|
||
с добавлением 100 байтов со значением 0x00 в начало файла:
|
||
.PP
|
||
\fI% xxd входной_файл | xxd \-r \-s 100 \> выходной_файл\fR
|
||
.br
|
||
.PP
|
||
.br
|
||
Заменить дату в файле xxd.1:
|
||
.PP
|
||
\fI% echo '0000029: 3574 68' | xxd \-r \- xxd.1\fR
|
||
.br
|
||
\fI% xxd \-s 0x28 \-l 12 \-c 12 xxd.1\fR
|
||
.br
|
||
0000028: 3235 7468 204d 6179 2031 3939 25th May 199
|
||
.PP
|
||
.br
|
||
Создать 65537-байтный файл, все байты которого имеют значение
|
||
0x00, кроме последнего байта, который должен иметь значение 'A'
|
||
(0x41):
|
||
.PP
|
||
\fI% echo '010000: 41' | xxd \-r \> file\fR
|
||
.PP
|
||
.br
|
||
Создать шестнадцатеричное представление этого файла с
|
||
использованием автоматического пропуска:
|
||
.PP
|
||
\fI% xxd \-a \-c 12 file\fR
|
||
.br
|
||
0000000: 0000 0000 0000 0000 0000 0000 ............
|
||
.br
|
||
*
|
||
.br
|
||
000fffc: 0000 0000 40 ....A
|
||
.PP
|
||
Создать 1-байтный файл, содержащий символ 'A'.
|
||
Число после '\-r \-s' добавляется к номерам строк, найденным в файле;
|
||
иначе говоря, предшествующие байты пропускаются:
|
||
.PP
|
||
\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> file\fR
|
||
.PP
|
||
xxd можно использовать в качестве фильтра в редакторе, например в
|
||
.B vim(1),
|
||
чтобы создать шестнадцатеричное представление области между
|
||
отметками `a' и `z':
|
||
.PP
|
||
\fI:'a,'z!xxd\fR
|
||
.PP
|
||
Вы можете использовать xxd в качестве фильтра в редакторе, например в
|
||
.B vim(1),
|
||
для восстановления данных из шестнадцатеричного представления
|
||
между отметками `a' и `z':
|
||
.PP
|
||
\fI:'a,'z!xxd \-r\fR
|
||
.PP
|
||
Вы можете использовать xxd в качестве фильтра в редакторе, например в
|
||
.B vim(1),
|
||
для восстановления данных из единственной строки
|
||
шестнадцатеричного представления. Поместите курсор в соответствующую строку
|
||
и наберите
|
||
.PP
|
||
\fI!!xxd \-r\fR
|
||
.PP
|
||
Чтобы прочитать единственный символ из канала связи:
|
||
.PP
|
||
\fI% xxd \-c1 < /dev/term/b &\fR
|
||
.br
|
||
\fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR
|
||
.br
|
||
\fI% echo \-n foo > /dev/term/b\fR
|
||
.PP
|
||
.SH ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
|
||
Программа xxd завершает работу со следующими значениями:
|
||
.TP
|
||
0
|
||
Ошибки не обнаружены.
|
||
.TP
|
||
\-1
|
||
Операция не поддерживается (выполнение
|
||
.I xxd \-r \-i
|
||
пока невозможно).
|
||
.TP
|
||
1
|
||
Ошибка при разборе ключей командной строки.
|
||
.TP
|
||
2
|
||
Проблемы во входном файле.
|
||
.TP
|
||
3
|
||
Проблемы в выходном файле.
|
||
.TP
|
||
4,5
|
||
Желательная позиция поиска недостижима.
|
||
.SH СМОТРИ ТАКЖЕ
|
||
uuencode(1), uudecode(1), patch(1)
|
||
.br
|
||
.SH ПРЕДУПРЕЖДЕНИЕ
|
||
Странность этой программы соответствует особенностям мозга её создателя.
|
||
Используйте её на свой страх и риск. Копируйте файлы, отслеживайте
|
||
вызовы, становитесь волшебником.
|
||
.br
|
||
.SH ВЕРСИЯ
|
||
Эта страница справочника документирует xxd версии 1.7.
|
||
.SH АВТОР
|
||
.br
|
||
(c) 1990-1997 Юрген Вайгерт (Juergen Weigert)
|
||
.br
|
||
<jnweiger@informatik.uni-erlangen.de>
|
||
.LP
|
||
Вы можете свободно распространять программу со ссылкой на меня.
|
||
.br
|
||
Если использование этой программы принесло вам какой-то доход,
|
||
поделитесь со мной.
|
||
.br
|
||
Если вы потеряли деньги, то я тут не причём.
|
||
.PP
|
||
Первый вариант страницы справочника написан Тони Наджентом (Tony Nugent)
|
||
.br
|
||
<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
|
||
.br
|
||
Небольшие изменения внесены Брамом Мооленааром (Bram Moolenaar).
|
||
Страница отредактирована Юргеном Вайгертом (Juergen Weigert).
|
||
.PP
|