¿Cómo convertir el carácter ASCII a entero en bash?


10

Estoy analizando una salida ntpq para pasar su contenido a nuestra base de datos a través de la utilidad de la consola. El primer elemento es una subcadena de un carácter que contiene el estado del control remoto. Puede ser "*", "+", "o", "#", etc. Es mejor que lo coloque en la base de datos como un número, para que pueda almacenarse fácilmente mediante procedimientos almacenados, pero no tengo idea de cómo para convertir un personaje en su representación ASCII en bash.

Respuestas:


17

Pon tu personaje en la variable A.

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

Algunos ejemplos:

$ 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

Esto probablemente es evidente, pero la variable en sí misma no es necesaria: por ejemplo, printf '%d\n' "'*".
Sam Marinelli
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.