Em C, printf ("%2X\n", 'A');
imprime 41
.
No bash, printf "%2X\n" 'A'
imprime bash: printf: A: invalid number
.
Como posso imprimir 41
usando como printf
em bash
C?
Por favor, não recomendo o uso de ferramentas externas como od
porque isso é muito lento: estou procurando um método interno do bash.
Embora curto, @Juergen comenta que isso responde à sua pergunta. Use o seguinte:
printf "%X\n" \"A\"
Observe que isso fornece o código de caractere de byte único ("ASCII", UTF-8). Veja o Unix & Linux StackExchange para saber mais sobre char -> hex value e o inverso, hex -> char, usando bash shell e/ou python.
No
printf
manual do bash, você encontrará:(minha ênfase)
Essas funções de shell encapsulam char_to_hex e hex_to_char. Nomes de funções roubados do perl
Então: