[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]On Wed, 6 Dec 2000, Alejandra Kauffman wrote:
> Hola, estoy trabajando con un shell que usa programacion awk.
> Necesito imprimir valores hexadecimales en formato decimal o entero.
> Por ejemplo, si tengo F quiero que se imprima el 15.
>
> No he podido lograrlo, pero no estoy segura si es posible hacerlo directamente mediante formatos de impresion o bien, si yo necesito convertir el valor y despues imprimirlo.
>
> Si alguien me puede dar alguna sugeencia se los agradecere mcho
BASH(1), el shell estandar de linux, permite constantes hexadecimales al
hacer evaluación aritmética, prueba:
$ echo $[0xFFFF]
En cambio AWK solo acepta constantes en base 10, así que tienes dos
opciones, o hacer la conversión desde el shell o usar una función en awk
del estilo:
BEGIN {
split("0 1 2 3 4 5 6 7 8 9",H);
H["A"]=10; H["B"]=11; H["C"]=12; H["D"]=13; H["E"]=14; H["F"]=15;
printf("%d",hex("FFFF"));
}
function hex(s) {
res = 0;
for(c=0;c<length(s);c++) {
res *= 16;
res += H[substr(s,c,1)];
}
return res;
}
Por cierto, te convendría aprender perl para tus escripts, es mucho más
poderoso.
Saludos
Salvador Ortiz
Lista de correo linux en linux net mx
Preguntas linux-owner en linux net mx
http://www.linux.net.mx/