Como converter caracteres ASCII em números inteiros no bash?


10

Estou analisando uma saída ntpq para passar seu conteúdo para nosso banco de dados por meio do utilitário do console. O primeiro elemento é uma substring de um caractere que contém o status do controle remoto. Pode ser "*", "+", "o", "#" etc. É melhor colocá-lo no DB como um número, para que ele possa ser facilmente mantido por procedimentos armazenados, mas não faço ideia de como para converter um caractere em sua representação ASCII no bash.

Respostas:


17

Coloque seu personagem na variável A.

printf '%d\n' "'$A"

Alguns exemplos:

$ A="*"; printf '%d\n' "'$A"
42
$ A="+"; printf '%d\n' "'$A"
43
$ A="#"; printf '%d\n' "'$A"
35
$ A="o"; printf '%d\n' "'$A"
111

Provavelmente isso é óbvio, mas a variável em si não é necessária: por exemplo printf '%d\n' "'*",.
Sam Marinelli
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.