Преобразуйте код ASCII в шестнадцатеричный в сценарии оболочки UNIX

Можно использовать :file newname изменить буферное имя.

От :help :file_f:

Устанавливает текущее имя файла на {name}. Дополнительное! старается не усекать сообщение, как с :file.
Если буфер действительно имел имя, то имя становится alternate-file имя. Не включенный в список буфер создается для содержания старого названия.

7
17.12.2011, 06:16
3 ответа

Существует a printf инструмент, который моделирует функцию C; обычно это в /usr/bin/printf, но много реализации оболочек, созданной-ins для него также. Можно использовать %02x для получения шестнадцатеричного представления символа но необходимо удостовериться, что Вы передаете строку, которая включает символ в одинарные кавычки (Редактирование: оказывается просто, что одинарная кавычка вначале достаточна):

printf "%%%02x\n" "'-"   # Outputs %2d

Можно сделать функцию оболочки для удобства:

function hex() {
    printf "%%%02x\n" "'$1"
}

hex -   # Outputs %2d
hex _   # Outputs %5f
hex .   # Outputs %2e
13
27.01.2020, 20:15
  • 1
    большое спасибо, это работает отлично –  Olivier DUVAL 30.08.2010, 15:32

Передозировка попытки:

$ повторяют-n "-_". |-A n-t x1 передозировки

2-й 5f 2e

-A n средства не печатают смещения и -t x1 средства, что тип входа является шестнадцатеричными целыми числами 1 байта.

4
27.01.2020, 20:15
  • 1
    Хороший. Можно использовать echo -n опустить новую строку в конце так od не берет его и поворачивает его в 0a –  Michael Mrozek♦ 27.08.2010, 20:07

xxd утилита шестнадцатеричного дампа, поставленная как часть vim-common пакет
Это имеет удобное -p опция, которая производит непрерывную 'плоскость/постскриптум' hexdump стиль.. Это может легко быть инвертировано через -r... -u произведет прописные Шестнадцатеричные Цифры.

$ echo -n "M" |xxd -p    # 1 ASCII char= 1 UTF-8 byte; Unicode Codepoint: U+0041
4d

$ echo -n "〶" |xxd -p -u # 1 CJK char= 3 UTF-8 bytes; Unicode Codepoint: U+3036  
E380B6

$ echo -n "Dump a string" |xxd -p -u  
44756D70206120737472696E67

$ echo -n "Dump and Revert" |xxd -p |xxd -r  
Dump and Revert
2
27.01.2020, 20:15
  • 1
    Возможно, добавьте переключатель-p при возвращении: xxd -r -p. Просто xxd -r не работал на меня в примере выше. –  bytefire 28.01.2016, 13:31

Теги

Похожие вопросы