123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409 |
- .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
|