diff options
Diffstat (limited to 'runtime/doc/xxd-ru.1')
-rw-r--r-- | runtime/doc/xxd-ru.1 | 408 |
1 files changed, 408 insertions, 0 deletions
diff --git a/runtime/doc/xxd-ru.1 b/runtime/doc/xxd-ru.1 new file mode 100644 index 0000000..111946a --- /dev/null +++ b/runtime/doc/xxd-ru.1 @@ -0,0 +1,408 @@ +.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 |