Как напечатать восьмеричное значение соответствующего символа UTF-8 в bash?

Я ожидал, что printf %s '\<octal_character_value>' добьется цели, но это не так:

printf %s '\101'

Выходы:

\101
4
задан 25 March 2015 в 16:52

2 ответа

По-видимому, Вы хотите %b. От help printf:

In addition to the standard format specifications described in printf(1),
printf interprets:

  %b    expand backslash escape sequences in the corresponding argument

И:

$ printf "%b\n" '\101'
A

я не знаю, работает ли это на символы Unicode в целом.

4
ответ дан 25 March 2015 в 16:52

Можно использовать Awk:

$ awk 'BEGIN {print "\107"}'
G

Или библиотека awk Velour :

$ velour -n 'print n_chr(+n_baseconv(107, 8, 10))'
G
1
ответ дан 25 March 2015 в 16:52

Другие вопросы по тегам:

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