RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 1 | .TH XXD 1 "May 2024" "Справочник по программе xxd" |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 2 | .\" |
| 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> |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 7 | .SH НАЗНАЧЕНИЕ |
| 8 | Программа |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 9 | .I xxd |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 10 | \[em] выполняет преобразование данных или в шестнадцатеричный вид, или выполняет |
| 11 | обратное преобразование из шестнадцатеричного кода в исходный формат |
| 12 | .SH КРАТКИЙ ОБЗОР |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 13 | .B xxd |
| 14 | \-h[elp] |
| 15 | .br |
| 16 | .B xxd |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 17 | [аргументы] [входной_файл [выходной_файл]] |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 18 | .br |
| 19 | .B xxd |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 20 | \-r[evert] [аргументы] [входной_файл [выходной_файл]] |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 21 | .SH ОПИСАНИЕ |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 22 | Программа |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 23 | .I xxd |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 24 | создаёт представление указанного файла или данных, прочитанных из стандартного |
| 25 | потока ввода, в виде шестнадцатеричных кодов. Эта программа также может |
| 26 | выполнять обратное преобразование заданных шестнадцатеричными кодами данных |
| 27 | в исходный двоичных формат. |
| 28 | Подобно программам |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 29 | .BR uuencode(1) |
| 30 | и |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 31 | .BR uudecode(1) |
| 32 | , она позволяет выполнять преобразование двоичных данных в символы кодировки |
| 33 | ASCII, которые можно передавать по электронной почте, однако, помимо этого, |
| 34 | программа xxd позволяет выполнять декодирование в поток стандартного вывода, |
| 35 | а также может применяться для создания исправлений для двоичных файлов. |
| 36 | .SH АРГУМЕНТЫ КОМАНДНОЙ СТРОКИ |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 37 | Если |
| 38 | .I входной_файл |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 39 | не задан, то требуемые данные считываются из стандартного потока ввода. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 40 | В случае, если в качестве |
| 41 | .I входного_файла |
| 42 | используется символ |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 43 | .RB ' \- ', |
| 44 | источником данных также выступает стандартный поток ввода. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 45 | В том случае, если не указан |
| 46 | .I выходной_файл |
| 47 | (или вместо него используется символ |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 48 | .RB ' \- ' |
| 49 | ), результат преобразования направляется в стандартный поток вывода. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 50 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 51 | Обратите внимание, что применяется "ленивый" алгоритм разбора аргументов, |
| 52 | который проверяет только первую букву аргумента, если, конечно, для этого |
| 53 | аргумента не указано какое-то значение. |
| 54 | Пробелы между односимвольным аргументом и его значением не являются |
| 55 | обязательными. Значения аргументов могут быть заданы в десятичном, |
| 56 | шестнадцатеричном или восьмеричном формате. |
| 57 | Таким образом, аргументы |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 58 | .BR \-c8 , |
| 59 | .BR "\-c 8" , |
| 60 | .B \-c 010 |
| 61 | и |
| 62 | .B \-cols 8 |
| 63 | являются равнозначными. |
| 64 | .PP |
| 65 | .TP |
| 66 | .IR \-a " | " \-autoskip |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 67 | Включить автоматический пропуск, т. е., вместо нескольких идущих подряд строк |
| 68 | с нулевым значением, используется одиночный символ '*'. |
| 69 | По умолчанию не применяется. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 70 | .TP |
| 71 | .IR \-b " | " \-bits |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 72 | Использовать биты (двоичный код), а не шестнадцатеричные цифры. |
| 73 | При указании этого аргумента, вместо обычного шестнадцатеричного представления |
| 74 | октетов, будет отображается набор из восьми цифр "1" и "0". Каждая строка |
| 75 | предваряется её номером в шестнадцатеричном виде, а завершается в виде символов |
RestorerZ | 5ca3efa | 2024-09-17 19:03:16 +0200 | [diff] [blame] | 76 | в кодировке ASCII (или в кодировке EBCDIC). Аргумент командной строки \-p |
| 77 | в этом режиме не применяется. Аргумент \-i может быть указан для этого режима. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 78 | .TP |
| 79 | .IR "\-c кол " | " \-cols кол" |
| 80 | Задаёт количество октетов |
| 81 | .RI < кол >, |
| 82 | которое выводится на каждой строке. По умолчанию используется значение 16 |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 83 | (для аргумента \-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 Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 95 | .TP |
| 96 | .IR \-E " | " \-EBCDIC |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 97 | Отображать символы в крайне правой колонке не в кодировке 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 Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 114 | .TP |
| 115 | .IR "\-g байт " | " \-groupsize байт" |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 116 | Выполнить группирование указанного количества |
| 117 | .RI < байт > |
| 118 | (две шестнадцатеричные цифры или восемь двоичных цифр), отделяя группы |
| 119 | друг от друга пробелами. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 120 | Значение |
| 121 | .I \-g 0 |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 122 | применяется для отказа от использования группирования. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 123 | По умолчанию используется значение |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 124 | .RI < байт ">, равное " 2 |
| 125 | при отображении в прямом порядке байт, \fI4\fP при отображении в обратном |
| 126 | порядке байт и \fI1\fP в двоичном режиме. Группировка не применяется |
| 127 | в режиме PostScript или include. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 128 | .TP |
| 129 | .IR \-h " | " \-help |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 130 | Показать краткую информацию об аргументах командной строки и завершить работу |
| 131 | программы. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 132 | Создание шестнадцатеричного представления не выполняется. |
| 133 | .TP |
| 134 | .IR \-i " | " \-include |
RestorerZ | 5ca3efa | 2024-09-17 19:03:16 +0200 | [diff] [blame] | 135 | Создавать вывод в стиле подключаемых заголовочных файлов языка Си. Вывод |
| 136 | содержит полноценное определение статического массива данных, название которого |
| 137 | соответствует наименованию входного файла, если программа xxd не считывает |
| 138 | данные из стандартного потока ввода. Возможно совмещение аргументов \-i и \-b. |
| 139 | \-b. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 140 | .TP |
| 141 | .IR "\-l длина " | " \-len длина" |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 142 | Указывает, что после записи заданного в параметре |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 143 | .RI < длина > |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 144 | количества октетов, работа программы будет завершена. |
| 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 Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 155 | .TP |
| 156 | .IR \-p " | " \-ps " | " \-postscript " | " \-plain |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 157 | Использовать непрерывный формата вывода шестнадцатеричного кода, |
| 158 | известного как "простой" стиль или стиль "PostScript". |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 159 | .TP |
| 160 | .IR \-r " | " \-revert |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 161 | Выполнить операцию обратного преобразования, т. е. преобразование |
| 162 | шестнадцатеричного представления в двоичный код (или применить результат |
| 163 | в качестве исправления). |
| 164 | Если вывод происходит не в стандартного поток вывода, то программа xxd выполняет |
| 165 | добавление кода к выходному файлу. При использовании комбинации аргументов |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 166 | .I \-r \-p |
| 167 | происходит чтение "простого" шестнадцатеричного представления без использования |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 168 | информации о номерах строк и какого-либо специального распределения колонок. |
| 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 Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 185 | .TP |
| 186 | .I \-seek смещение |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 187 | При указании после аргумента |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 188 | .I \-r |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 189 | , будет добавляться указанное |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 190 | .RI < смещение > |
| 191 | к файловым позициям, обнаруженным в исходных данных. |
| 192 | .TP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 193 | .I \-s [+][\-]seek |
| 194 | Начинать обработку с указанного абсолютного (или относительного) |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 195 | .RI < смещения > |
| 196 | в байтах во входном_файле. |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 197 | Где \fI+ \fRуказывает, что смещение является относительным по отношению |
| 198 | к текущей позиции данных в стандартном потоке ввода (бессмысленно, если чтение |
| 199 | происходит не из стандартного потока ввода). А параметр \fI\- \fRуказывает, |
| 200 | что должно быть прочитано указанное количество символов от конца ввода (либо, |
| 201 | если одновременно с параметром \fI+\fR, то перед текущей позицией данных |
| 202 | в стандартном потоке ввода). |
| 203 | Если аргумент \-s не используется, то программа xxd начинает обработку |
| 204 | от текущей позиции в файле. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 205 | .TP |
| 206 | .I \-u |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 207 | Указывает, что в выводе отображать шестнадцатеричные цифры в верхнем регистре. |
| 208 | По умолчанию используются символы в нижнем регистре символов. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 209 | .TP |
| 210 | .IR \-v " | " \-version |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 211 | Показать информацию о версии программы и завершить работу. |
| 212 | .SH НЕКОТОРЫЕ РАЗЪЯСНЕНИЯ |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 213 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 214 | При указании команды |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 215 | .I xxd \-r |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 216 | при запуске программы, будет применяться некий встроенный алгоритм |
| 217 | для распознавания информации о номерах строк. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 218 | Если возможен поиск по входному файлу, то номера строк в начале каждой строки |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 219 | шестнадцатеричного представления могут быть неупорядоченными, некоторые строки |
| 220 | могут быть пропущены или пересекаться друг с другом. В этих случаях программа |
| 221 | xxd использует функцию lseek(2) для перехода к следующей позиции. Если поиск по |
| 222 | входному файлу невозможен, то допустимы только пропуски строк, которые |
| 223 | заполняются нулевыми байтами. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 224 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 225 | Использование команды |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 226 | .I xxd \-r |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 227 | приводит к тому, что сообщения об ошибках не будут отображаться. |
| 228 | Посторонние данные просто молча пропускаются. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 229 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 230 | При редактировании шестнадцатеричного представления двоичных файлов, обращайте |
| 231 | внимание, что по команде |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 232 | .I xxd \-r |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 233 | , после считывания достаточного количества колонок шестнадцатеричных данных |
| 234 | (см. аргумент \-c), в строке ввода не будут обрабатываться остальные данные. |
| 235 | Это означает, что изменения, внесённые в колонке с текстом в кодировке |
| 236 | ASCII (или EBCDIC), всегда игнорируются. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 237 | При обратном преобразовании шестнадцатеричного представления в стиле |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 238 | PostScript с помощью команды xxd \-r \-p количество колонок не учитывается. |
| 239 | В этом случае распознаются все символы, которые похожи на пары шестнадцатеричных |
| 240 | цифр. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 241 | .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, |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 254 | поскольку для того, чтобы "отмотать" данные на входе назад, используется вызов |
| 255 | функции lseek(2). |
| 256 | При указании параметра '+' поведение будет отличаться, если входные данные |
| 257 | поступают со стандартного потока ввода, а позиция в файле стандартного ввода |
| 258 | не находится в начале файла к тому моменту, когда программа xxd запущена |
| 259 | и приступает к чтению ввода. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 260 | Нижеследующие примеры помогут прояснить (или ещё больше запутать!) ситуацию... |
| 261 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 262 | Отмотка потока стандартного ввода назад необходима, поскольку программа 'cat' |
| 263 | уже выполнила чтение данных до конца из стандартного потока ввода: |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 264 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 265 | \fI% sh \-c "cat > plain_copy; xxd \-s 0 > hex_copy" < file\fR |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 266 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 267 | Вывод шестнадцатеричного представления от позиции в файле 0x480 (=1024+128). |
| 268 | Параметр '+' означает "относительно текущей позиции", таким образом '128' |
| 269 | добавляется к первому килобайту, где завершает работу программа dd: |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 270 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 271 | \fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +128 \> hex_snippet" < file\fR |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 272 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 273 | Вывод шестнадцатеричного представления от позиции в файле 0x100 (=1024\[mi]768): |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 274 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 275 | \fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +\-768 \> hex_snippet" < file\fR |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 276 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 277 | В то же время, следует заметить, что подобные ситуации встречаются довольно |
| 278 | редко, так что параметр '+' обычно не используется. Автор предпочитает наблюдать |
| 279 | за работой программы xxd с помощью инструментов strace(1) или truss(1) в тех |
| 280 | случаях, когда применяется аргумент |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 281 | \-s. |
| 282 | .SH ПРИМЕРЫ |
| 283 | .PP |
| 284 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 285 | Вывести всё, кроме первых трёх строк (0x30 байт) |
| 286 | .BR файла |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 287 | : |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 288 | .br |
| 289 | \fI% xxd \-s 0x30 file\fR |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 290 | .PP |
| 291 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 292 | Вывести три строки (0x30 байт) от конца |
| 293 | .BR файла |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 294 | : |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 295 | .br |
| 296 | \fI% xxd \-s \-0x30 file\fR |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 297 | .PP |
| 298 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 299 | Вывести 120 байт в виде непрерывного шестнадцатеричного представления |
| 300 | по 20 октетов в строке |
| 301 | .br |
| 302 | (этот пример для справочника xxd.1 на английском языке, для русского языка будет |
| 303 | немного другой результат): |
| 304 | .br |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 305 | \fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR |
| 306 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 307 | 2e544820585844203120224d6179203230323422 |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 308 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 309 | 20224d616e75616c207061676520666f72207878 |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 310 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 311 | 64220a2e5c220a2e5c222032317374204d617920 |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 312 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 313 | 313939360a2e5c22204d616e2070616765206175 |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 314 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 315 | 74686f723a0a2e5c2220202020546f6e79204e75 |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 316 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 317 | 67656e74203c746f6e79407363746e7567656e2e |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 318 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 319 | |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 320 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 321 | Вывести первые 120 байт этого справочника по 12 октетов в строке |
| 322 | .br |
| 323 | (этот пример для справочника xxd.1 на английском языке, для русского языка будет |
| 324 | немного другой результат): |
| 325 | .br |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 326 | \fI% xxd \-l 120 \-c 12 xxd.1\fR |
| 327 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 328 | 00000000: 2e54 4820 5858 4420 3120 224d .TH XXD 1 "M |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 329 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 330 | 0000000c: 6179 2032 3032 3422 2022 4d61 ay 2024" "Ma |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 331 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 332 | 00000018: 6e75 616c 2070 6167 6520 666f nual page fo |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 333 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 334 | 00000024: 7220 7878 6422 0a2e 5c22 0a2e r xxd"..\\".. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 335 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 336 | 00000030: 5c22 2032 3173 7420 4d61 7920 \\" 21st May |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 337 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 338 | 0000003c: 3139 3936 0a2e 5c22 204d 616e 1996..\\" Man |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 339 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 340 | 00000048: 2070 6167 6520 6175 7468 6f72 page author |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 341 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 342 | 00000054: 3a0a 2e5c 2220 2020 2054 6f6e :..\\" Ton |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 343 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 344 | 00000060: 7920 4e75 6765 6e74 203c 746f y Nugent <to |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 345 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 346 | 0000006c: 6e79 4073 6374 6e75 6765 6e2e ny@sctnugen. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 347 | .PP |
| 348 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 349 | Показать дату из файла |
| 350 | .B xxd.1 |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 351 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 352 | (этот пример для справочника 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 |
| 357 | 00000033: 3231 7374 204d 6179 2031 3939 36 21st May 1996 |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 358 | .PP |
| 359 | .br |
| 360 | Скопировать |
| 361 | .B входной_файл |
| 362 | в |
| 363 | .B выходной_файл |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 364 | с добавлением 100 байт со значением 0x00 в начало файла: |
| 365 | .br |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 366 | \fI% xxd входной_файл | xxd \-r \-s 100 \> выходной_файл\fR |
| 367 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 368 | |
| 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 |
| 380 | 00000033: 3235 7468 204d 6179 2031 3939 36 25th May 1996 |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 381 | .PP |
| 382 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 383 | Создать 65537-байтный файл, все байты которого имеют значение 0x00, |
| 384 | кроме последнего байта, который должен иметь значение 'A' (0x41): |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 385 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 386 | \fI% echo "010000: 41" | xxd \-r > file\fR |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 387 | .PP |
| 388 | .br |
| 389 | Создать шестнадцатеричное представление этого файла с |
| 390 | использованием автоматического пропуска: |
| 391 | .PP |
| 392 | \fI% xxd \-a \-c 12 file\fR |
| 393 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 394 | 00000000: 0000 0000 0000 0000 0000 0000 ............ |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 395 | .br |
| 396 | * |
| 397 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 398 | 0000fffc: 0000 0000 41 ....A |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 399 | .PP |
| 400 | Создать 1-байтный файл, содержащий символ 'A'. |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 401 | Число после аргументов '\-r \-s' добавляется к номерам строк, найденным в файле, |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 402 | иначе говоря, предшествующие байты пропускаются: |
| 403 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 404 | \fI% echo '010000: 41' | xxd \-r \-s \-0x10000 > file\fR |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 405 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 406 | Программу xxd можно использовать в качестве фильтра в редакторе, например в |
| 407 | .B vim(1) |
| 408 | , чтобы создать шестнадцатеричное представление области между |
| 409 | закладками 'a' и 'z': |
| 410 | .br |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 411 | \fI:'a,'z!xxd\fR |
| 412 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 413 | Можно использовать программу xxd в качестве фильтра в редакторе, например в |
| 414 | .B vim(1) |
| 415 | , для восстановления данных из шестнадцатеричного представления |
| 416 | между закладками 'a' и 'z': |
| 417 | .br |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 418 | \fI:'a,'z!xxd \-r\fR |
| 419 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 420 | Можно использовать программу xxd в качестве фильтра в редакторе, например в |
| 421 | .B vim(1) |
| 422 | , для восстановления данных из единственной строки |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 423 | шестнадцатеричного представления. Поместите курсор в соответствующую строку |
| 424 | и наберите |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 425 | .br |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 426 | \fI!!xxd \-r\fR |
| 427 | .PP |
| 428 | Чтобы прочитать единственный символ из канала связи: |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 429 | .br |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 430 | \fI% xxd \-c1 < /dev/term/b &\fR |
| 431 | .br |
| 432 | \fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR |
| 433 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 434 | \fI% echo \-n foo \> /dev/term/b\fR |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 435 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 436 | .SH КОДЫ ЗАВЕРШЕНИЯ |
| 437 | При завершении работы, программа xxd возвращает следующие значения: |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 438 | .TP |
| 439 | 0 |
| 440 | Ошибки не обнаружены. |
| 441 | .TP |
| 442 | \-1 |
| 443 | Операция не поддерживается (выполнение |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 444 | .I \%xxd \-r \-i |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 445 | пока невозможно). |
| 446 | .TP |
| 447 | 1 |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 448 | Ошибка при разборе аргументов командной строки. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 449 | .TP |
| 450 | 2 |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 451 | Ошибки во входном файле. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 452 | .TP |
| 453 | 3 |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 454 | Ошибки в выходном файле. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 455 | .TP |
| 456 | 4,5 |
| 457 | Желательная позиция поиска недостижима. |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 458 | .SH СМОТРИТЕ ТАКЖЕ |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 459 | uuencode(1), uudecode(1), patch(1) |
| 460 | .br |
| 461 | .SH ПРЕДУПРЕЖДЕНИЕ |
| 462 | Странность этой программы соответствует особенностям мозга её создателя. |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 463 | Используйте её на свой страх и риск. Копируйте файлы, отслеживайте вызовы, |
| 464 | становитесь волшебником. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 465 | .br |
| 466 | .SH ВЕРСИЯ |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 467 | Этот справочник документирует программу xxd версии 1.7 от 2024-05. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 468 | .SH АВТОР |
| 469 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 470 | (c) Юрген Вайгерт (Juergen Weigert), 1990-1997 |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 471 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 472 | <jnweiger@informatik.uni\-erlangen.de> |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 473 | .LP |
| 474 | Вы можете свободно распространять программу со ссылкой на меня. |
| 475 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 476 | Если использование этой программы принесло вам какой-то доход, поделитесь со |
| 477 | мной. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 478 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 479 | Если вы потеряли деньги, то я тут ни при чём. |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 480 | .PP |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 481 | Первый вариант справочника написан Тони Наджентом (Tony Nugent) |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 482 | .br |
| 483 | <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au> |
| 484 | .br |
RestorerZ | 12333ba | 2024-08-20 19:57:00 +0200 | [diff] [blame] | 485 | Небольшие изменения внесены Брамом Моленаром (Bram Moolenaar). |
| 486 | Справочник отредактирован Юргеном Вайгертом (Juergen Weigert). |
Bram Moolenaar | 217ad92 | 2005-03-20 22:37:15 +0000 | [diff] [blame] | 487 | .PP |