Rechercher une page de manuel
xxd
Langue: ru
Version: 55896 (openSuse - 09/10/07)
Section: 1 (Commandes utilisateur)
Sommaire
ИМЯ
xxd - Ñоздаёт предÑтавление файла в виде шеÑтнадцатеричных кодов или выполнÑет обратное преобразование.КОМÐÐДÐÐЯ СТРОКÐ
xxd -h[elp]xxd [ключи] [входной_файл [выходной_файл]]
xxd -r[evert] [ключи] [входной_файл [выходной_файл]]
ОПИСÐÐИЕ
xxd Ñоздаёт предÑтавление указанного файла или данных, прочитанных из потока Ñтандартного ввода, в виде шеÑтнадцатеричных кодов. Ðта команда также может выполнить обратное преобразование заданных шеÑтнадцатеричными кодами данных в иÑходный бинарный формат. Подобно командам uuencode(1) и uudecode(1), она позволÑет выполнÑÑ‚ÑŒ преобразование бинарных данных в ASCII-код, который можно передавать по Ñлектронной почте, однако, помимо Ñтого, программа xxd позволÑет выполнÑÑ‚ÑŒ декодирование в поток Ñтандартного вывода, а также может применÑÑ‚ÑŒÑÑ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿Ð»Ð°Ñ‚Ð¾Ðº Ð´Ð»Ñ Ð±Ð¸Ð½Ð°Ñ€Ð½Ñ‹Ñ… файлов.КЛЮЧИ ЗÐПУСКÐ
ЕÑли входной_файл не задан, то ÑоответÑтвующие данные читаютÑÑ Ð¸Ð· потока Ñтандартного ввода. Ð’ Ñлучае, еÑли в качеÑтве входного_файла иÑпользуетÑÑ Ñимвол `-', иÑточником данных также выÑтупает поток Ñтандартного ввода. Ð’ том Ñлучае, еÑли не указан выходной_файл (или вмеÑто него иÑпользуетÑÑ Ñимвол `-' ), результат Ð¿Ñ€ÐµÐ¾Ð±Ñ€Ð°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð°Ð¿Ñ€Ð°Ð²Ð»ÑетÑÑ Ð² поток Ñтандартного вывода.Обратите внимание, что иÑпользуетÑÑ "ленивый" алгоритм разбора ключей, который не проверÑет более одной буквы ключа, еÑли в Ñтом ключе не иÑпользуетÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€. Пробелы между единÑтвенным Ñимволом ключа и ÑоответÑтвующим параметром не ÑвлÑÑŽÑ‚ÑÑ Ð¾Ð±Ñзательными. Параметры ключей могут быть заданы Ñ Ð¸Ñпользованием деÑÑтичного, шеÑтнадцатеричного или воÑьмеричного формата. Таким образом, ключи -c8, -c 8, -c 010 и -cols 8 ÑвлÑÑŽÑ‚ÑÑ Ñ€Ð°Ð²Ð½Ð¾Ð·Ð½Ð°Ñ‡Ð½Ñ‹Ð¼Ð¸.
- -a | -autoskip
- Включает автоматичеÑкий пропуÑк: вмеÑто поÑледовательноÑти нулевых Ñтрок иÑпользуетÑÑ Ð¾Ð´Ð¸Ð½Ð¾Ñ‡Ð½Ñ‹Ð¹ Ñимвол '*'. По умолчанию не применÑетÑÑ.
- -b | -bits
- ВмеÑто шеÑтнадцатеричного кода иÑпользуютÑÑ Ð±Ð¸Ñ‚Ñ‹ (двоичные цифры). При иÑпользовании Ñтого ключа вмеÑто обычного шеÑтнадцатеричного предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾ÐºÑ‚ÐµÑ‚Ð¾Ð² иÑпользуютÑÑ Ð½Ð°Ð±Ð¾Ñ€Ñ‹ из воÑьми Ñимволов "1" и "0". ÐšÐ°Ð¶Ð´Ð°Ñ Ñтрока предварÑетÑÑ Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ Ñтроки в шеÑтнадцатеричном виде, а завершаетÑÑ Ñимвольным предÑтавлением (в виде ascii или ebcdic). Ключи -r, -p, -i в Ñтом режиме не работают.
- -c кол | -cols кол
- Задаёт количеÑтво октетов <кол>, которое выводитÑÑ Ð½Ð° каждой Ñтроке. По умолчанию иÑпользуетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ 16 (-i: 12, -ps: 30, -b: 6). МакÑимально допуÑтимое значение: 256.
- -E | -EBCDIC
- ИзменÑет ÑпоÑоб ÐºÐ¾Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñимволов в правой колонке Ñ ASCII на EBCDIC. Ðтот ключ не изменÑет шеÑтнадцатеричное предÑтавление. Данный ключ не имеет ÑмыÑла, еÑли иÑпользуютÑÑ ÐºÐ»ÑŽÑ‡Ð¸ -r, -p или -i.
- -g байт | -groupsize байт
- ПозволÑет выполнÑÑ‚ÑŒ группировку указанного количеÑтва <байтов> (две шеÑтнадцатеричные цифры или воÑемь битов), отделÑÑ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ друг от друга пробелами. Значение -g 0 применÑетÑÑ Ð´Ð»Ñ Ð¾Ñ‚ÐºÐ°Ð·Ð° от иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð³Ñ€ÑƒÐ¿Ð¿Ð¸Ñ€Ð¾Ð²ÐºÐ¸. По умолчанию иÑпользуетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ <байт> равное 2 в обычном режиме и 1 в битовом режиме. Группировка не применÑетÑÑ Ð² режимах postscript и include.
- -h | -help
- Выводит Ñправку по доÑтупным ключам командной Ñтроки и завершает работу программы. Создание шеÑтнадцатеричного предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ðµ выполнÑетÑÑ.
- -i | -include
- ПозволÑет Ñоздавать вывод в Ñтиле подключаемых заголовочных файлов Ñзыка C. Вывод Ñодержит полноценное определение ÑтатичеÑкого маÑÑива данных, Ð¸Ð¼Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð³Ð¾ ÑоответÑтвует имени входного файла, еÑли xxd не Ñчитывает данные из потока Ñтандартного ввода.
- -l длина | -len длина
- Завершает работу поÑле запиÑи заданного в параметре <длина> количеÑтва октетов.
- -p | -ps | -postscript | -plain
- ИÑпользует непрерывный формат вывода шеÑтнадцатеричного кода, извеÑтный как "проÑтой" Ñтиль или Ñтиль "postscript".
- -r | -revert
- ИзменÑет ÑмыÑл операции на противоположный: позволÑет выполнÑÑ‚ÑŒ преобразование шеÑтнадцатеричного предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² бинарный код (или применÑÑ‚ÑŒ результат в качеÑтве заплаты). ЕÑли вывод проиÑходит не в поток Ñтандартного вывода, то xxd выполнÑет добавление кода к ÑоответÑтвующему файлу. При иÑпользовании комбинации ключей -r -p проиÑходит чтение "проÑтого" шеÑтнадцатеричного предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð±ÐµÐ· иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸ о номерах Ñтрок и какого-либо Ñпециального раÑÐºÑ€Ð¾Ñ ÐºÐ¾Ð»Ð¾Ð½Ð¾Ðº. Пробелы и Ñимволы новой Ñтроки могут вÑтречатьÑÑ Ð² любом меÑте иÑходных данных.
- -seek Ñмещение
- При иÑпользовании поÑле ключа -r : добавлÑÑ‚ÑŒ указанное <Ñмещение> к файловым позициÑм, обнаруженным в иÑходных данных.
- -s [+][-]seek
- Ðачинает работу Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ абÑолютного (или отноÑительного) <ÑмещениÑ> в байтах во входном_файле. + указывает, что Ñмещение ÑвлÑетÑÑ Ð¾Ñ‚Ð½Ð¾Ñительным по отношению к текущей файловой позиции в потоке Ñтандартного ввода (беÑÑмыÑленно, еÑли чтение проиÑходит не из потока Ñтандартного ввода). - указывает, что должно быть прочитано указанное количеÑтво Ñимволов от конца ввода (либо, еÑли ÑочетаетÑÑ Ñ + : перед текущей позиции файла в потоке Ñтандартного ввода). ЕÑли ключ -s не иÑпользуетÑÑ, то xxd начинает работу от текущей позиции в файле.
- -u
- ИÑпользует шеÑтнадцатеричные цифры в верхнем региÑтре. По умолчанию иÑпользуютÑÑ Ñ†Ð¸Ñ„Ñ€Ñ‹ в нижнем региÑтре Ñимволов.
- -v | -version
- Отображает информацию о верÑии программы.
ПОДВОДÐЫЕ КÐÐœÐИ
xxd -r обладает вÑтроенным интеллектом Ð´Ð»Ñ Ñ€Ð°ÑÐ¿Ð¾Ð·Ð½Ð°Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸ о номерах Ñтрок. ЕÑли возможен поиÑк по входному файлу, то номера Ñтрок в начале каждой Ñтроки шеÑтнадцатеричного предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð³ÑƒÑ‚ быть неупорÑдоченными, некоторые Ñтроки могут быть пропущены или переÑекатьÑÑ Ð´Ñ€ÑƒÐ³ Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð¼. Ð’ Ñтих ÑлучаÑÑ… xxd иÑпользует lseek(2) Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ð° к Ñледующей позиции. ЕÑли поиÑк по входному файлу невозможен, то допуÑтимы только пропуÑки Ñтрок, которые заполнÑÑŽÑ‚ÑÑ Ð½ÑƒÐ»ÐµÐ²Ñ‹Ð¼Ð¸ байтами.
xxd -r никогда не выводит Ñообщений об ошибках. МуÑор пропуÑкаетÑÑ Ð¼Ð¾Ð»Ñ‡Ð°.
При редактировании шеÑтнадцатеричных предÑтавлений бинарных файлов обращайте внимание, что xxd -r пропуÑкает в Ñтроке ввода любые данные поÑле Ð¿Ñ€Ð¾Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтаточного количеÑтва колонок шеÑтнадцатеричных данных (Ñм. ключ -c). Ðто означает, что изменениÑ, внеÑенные в колонки Ñ Ð¿ÐµÑ‡Ð°Ñ‚Ð½Ñ‹Ð¼Ð¸ Ñимволами ascii (или ebcdic), вÑегда игнорируютÑÑ. При обратном преобразовании шеÑтнадцатеричного предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² Ñтиле postscript Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ команды xxd -r -p количеÑтво колонок не учитываетÑÑ. Ð’ Ñтом Ñлучае раÑпознаютÑÑ Ð²Ñе Ñимволы, которые похожи на пары шеÑтнадцатеричных цифр.
Обратите внимание на различие между командами
% xxd -i файл
и
% xxd -i < файл
Команда xxd -s +seek может отличатьÑÑ Ð¾Ñ‚ xxd -s seek, поÑкольку Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы "отмотать" данные на входе назад, иÑпользуетÑÑ Ð²Ñ‹Ð·Ð¾Ð² lseek(2). При иÑпользовании `+' поведение будет отличатьÑÑ, еÑли входные данные поÑтупают Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÐ° Ñтандартного ввода, а Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð² файле Ñтандартного ввода не находитÑÑ Ð² начале файла к тому моменту, когда программа xxd запущена и приÑтупает к чтению ввода. ÐижеÑледующие примеры помогут проÑÑнить (или ещё больше запутать!) Ñитуацию...
Отмотка назад потока Ñтандартного ввода; необходимо, поÑкольку 'cat' уже выполнила чтение до конца потока Ñтандартного ввода:
% sh -c 'cat > plain_copy; xxd -s 0 > hex_copy' < file
Вывод шеÑтнадцатеричного предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚ позиции в файле 0x480 (= 1024+128). Символ `+' означает "отноÑительно текущей позиции", таким образом `128' добавлÑетÑÑ Ðº первому килобайту, где завершает работу dd:
% sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +128 > hex_snippet' < file
Вывод шеÑтнадцатеричного предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚ позиции в файле 0x100 (= 1024-768):
% sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +-768 > hex_snippet' < file
Ð’ то же времÑ, Ñледует заметить, что подобные Ñитуации вÑтречаютÑÑ Ð´Ð¾Ð²Ð¾Ð»ÑŒÐ½Ð¾ редко, так что Ñимвол `+' обычно не иÑпользуетÑÑ. Ðвтор предпочитает наблюдать за работой xxd Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ strace(1) или truss(1) в тех ÑлучаÑÑ…, когда применÑетÑÑ ÐºÐ»ÑŽÑ‡ -s.
ПРИМЕРЫ
ВывеÑти вÑÑ‘, кроме первых трёх Ñтрок (0x30 байтов) файла file :
% xxd -s 0x30 file
ВывеÑти три Ñтроки (0x30 байтов) от конца файла file :
% xxd -s -0x30 file
ВывеÑти 120 байтов в виде непрерывного шеÑтнадцатеричного предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ 20 октетов в Ñтроке:
% xxd -l 120 -ps -c 20 xxd.1
2e544820585844203120224d616e75616c207061
676520666f7220787864220a2e5c220a2e5c2220
32317374204d617920313939360a2e5c22204d61
6e207061676520617574686f723a0a2e5c222020
2020546f6e79204e7567656e74203c746f6e7940
7363746e7567656e2e7070702e67752e6564752e
ВывеÑти первые 120 байтов Ñтой Ñтраницы Ñправочника по 12 октетов в Ñтроке:
% xxd -l 120 -c 12 xxd.1
0000000: 2e54 4820 5858 4420 3120 224d .TH XXD 1 "M
000000c: 616e 7561 6c20 7061 6765 2066 anual page f
0000018: 6f72 2078 7864 220a 2e5c 220a or xxd"..\".
0000024: 2e5c 2220 3231 7374 204d 6179 .\" 21st May
0000030: 2031 3939 360a 2e5c 2220 4d61 1996..\" Ma
000003c: 6e20 7061 6765 2061 7574 686f n page autho
0000048: 723a 0a2e 5c22 2020 2020 546f r:..\" To
0000054: 6e79 204e 7567 656e 7420 3c74 ny Nugent <t
0000060: 6f6e 7940 7363 746e 7567 656e ony@sctnugen
000006c: 2e70 7070 2e67 752e 6564 752e .ppp.gu.edu.
Показать дату из файла xxd.1:
% xxd -s 0x28 -l 12 -c 12 xxd.1
0000028: 3231 7374 204d 6179 2031 3939 21st May 199
Скопировать входной_файл в выходной_файл Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸ÐµÐ¼ 100 байтов Ñо значением 0x00 в начало файла:
% xxd входной_файл | xxd -r -s 100 > выходной_файл
Заменить дату в файле xxd.1:
% echo '0000029: 3574 68' | xxd -r - xxd.1
% xxd -s 0x28 -l 12 -c 12 xxd.1
0000028: 3235 7468 204d 6179 2031 3939 25th May 199
Создать 65537-байтный файл, вÑе байты которого имеют значение 0x00, кроме поÑледнего байта, который должен иметь значение 'A' (0x41):
% echo '010000: 41' | xxd -r > file
Создать шеÑтнадцатеричное предÑтавление Ñтого файла Ñ Ð¸Ñпользованием автоматичеÑкого пропуÑка:
% xxd -a -c 12 file
0000000: 0000 0000 0000 0000 0000 0000 ............
*
000fffc: 0000 0000 40 ....A
Создать 1-байтный файл, Ñодержащий Ñимвол 'A'. ЧиÑло поÑле '-r -s' добавлÑетÑÑ Ðº номерам Ñтрок, найденным в файле; иначе говорÑ, предшеÑтвующие байты пропуÑкаютÑÑ:
% echo '010000: 41' | xxd -r -s -0x10000 > file
xxd можно иÑпользовать в качеÑтве фильтра в редакторе, например в vim(1), чтобы Ñоздать шеÑтнадцатеричное предÑтавление облаÑти между отметками `a' и `z':
:'a,'z!xxd
Ð’Ñ‹ можете иÑпользовать xxd в качеÑтве фильтра в редакторе, например в vim(1), Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… из шеÑтнадцатеричного предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ отметками `a' и `z':
:'a,'z!xxd -r
Ð’Ñ‹ можете иÑпользовать xxd в качеÑтве фильтра в редакторе, например в vim(1), Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… из единÑтвенной Ñтроки шеÑтнадцатеричного предÑтавлениÑ. ПомеÑтите курÑор в ÑоответÑтвующую Ñтроку и наберите
!!xxd -r
Чтобы прочитать единÑтвенный Ñимвол из канала ÑвÑзи:
% xxd -c1 < /dev/term/b &
% stty < /dev/term/b -echo -opost -isig -icanon min 1
% echo -n foo > /dev/term/b
ВОЗВРÐЩÐЕМЫЕ ЗÐÐЧЕÐИЯ
Программа xxd завершает работу Ñо Ñледующими значениÑми:- 0
- Ошибки не обнаружены.
- -1
- ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð½Ðµ поддерживаетÑÑ (выполнение xxd -r -i пока невозможно).
- 1
- Ошибка при разборе ключей командной Ñтроки.
- 2
- Проблемы во входном файле.
- 3
- Проблемы в выходном файле.
- 4,5
- Ð–ÐµÐ»Ð°Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¿Ð¾Ð·Ð¸Ñ†Ð¸Ñ Ð¿Ð¾Ð¸Ñка недоÑтижима.
СМОТРИ ТÐКЖЕ
uuencode(1), uudecode(1), patch(1)ПРЕДУПРЕЖДЕÐИЕ
СтранноÑÑ‚ÑŒ Ñтой программы ÑоответÑтвует оÑобенноÑÑ‚Ñм мозга её ÑоздателÑ. ИÑпользуйте её на Ñвой Ñтрах и риÑк. Копируйте файлы, отÑлеживайте вызовы, ÑтановитеÑÑŒ волшебником.ВЕРСИЯ
Ðта Ñтраница Ñправочника документирует xxd верÑии 1.7.ÐВТОÐ
(c) 1990-1997 Юрген Вайгерт (Juergen Weigert)
<jnweiger@informatik.uni-erlangen.de>
Ð’Ñ‹ можете Ñвободно раÑпроÑтранÑÑ‚ÑŒ программу Ñо ÑÑылкой на менÑ.
ЕÑли иÑпользование Ñтой программы принеÑло вам какой-то доход, поделитеÑÑŒ Ñо мной.
ЕÑли вы потерÑли деньги, то Ñ Ñ‚ÑƒÑ‚ не причём.
Первый вариант Ñтраницы Ñправочника напиÑан Тони Ðаджентом (Tony Nugent)
<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
Ðебольшие Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð½ÐµÑены Брамом Мооленааром (Bram Moolenaar). Страница отредактирована Юргеном Вайгертом (Juergen Weigert).
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre