[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/