Как преобразовать шестнадцатеричное число в символы ASCII в оболочке Linux?

Я считаю, что это то же самое, что и строка a + строка b. Строковый тип в C # является неизменным , поэтому предпочтительным способом манипуляции со строками является StringBuilder. Как сказал Гуффа: «Используйте тот, который лучше всего отражает ваши намерения, с помощью кода». Конечно, для простого использования, где производительность не слишком важна, используйте + или concat.

58
задан Ciro Santilli 新疆改造中心法轮功六四事件 8 March 2019 в 12:20
поделиться

3 ответа

echo -n 5a | perl -pe 's/([0-9a-f]{2})/chr hex $1/gie'

Обратите внимание, что при этом не будут пропущены не-шестнадцатеричные символы. Если вам нужен только шестнадцатеричный код (без пробелов в исходной строке и т. Д.):

echo 5a | perl -ne 's/([0-9a-f]{2})/print chr hex $1/gie'

Кроме того, zsh и bash поддерживают это изначально в echo :

echo -e '\x5a'
59
ответ дан 24 November 2019 в 18:40
поделиться

в зависимости от того, где вы взяли этот "5а", вы можете просто добавить к нему \ x и перейти к printf

$ a=5a
$ a="\x${a}"
$ printf "$a"
Z
3
ответ дан 24 November 2019 в 18:40
поделиться
echo 5a | python -c "import sys; print chr(int(sys.stdin.read(),base=16))"
1
ответ дан 24 November 2019 в 18:40
поделиться
Другие вопросы по тегам:

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