Nociones de programación en awk - Formato de salida con printf

7 - Formato de salida con printf


Tutorial creado por Antonio Castro Snurmacher (Madrid 01/01/2000). . Extraido de: http://www.mononeurona.org/index.php?idp=462
27 Octubre 2005
< anterior | 1 .. 5 6 7 8 9 .. 16 | siguiente >
Para imprimir con formato usaremos 'printf' en lugar de 'print'. printf se usa en varios lenguajes. El primer argumento de esta función debe de ser una cadena de caracteres que contenga el formato de salida deseado para la salida. Los formatos de cada dato se expresan mediante unas directivas que empiezan con el carácter '%' y debe de existir en dicha cadena tantas directivas como datos separados por coma a continuación de la cadena de formato.

Hay que tener en cuenta que en 'awk' la concatenación de cadenas se usa poniendo una cadena a continuación de otra separada por blancos. Por ejemplo:
# cad = "(unodos)" cad = "uno" "dos" ; cad = "(" cad ")"


@@|| @@Especificación de formato de datos para 'printf' @@ ||
|| %c || Carácter ASCII ||
|| %d || Entero representado en decimal ||
|| %e || Coma flotante (exponente = e[+-]dd) ||
|| %E || Coma flotante (exponente = E[+-]dd) ||
|| %f || Coma flotante sin exponente ||
|| %g || Equivale al más corto de los formatos 'e' o 'f' ||
|| %G || Equivale al más corto de los formatos 'E' o 'F' ||
|| %o || Entero representado en octal ||
|| %s || Cadena de caracteres ||
|| %x || Entero representado en hexadecimal con minúsculas ||
|| %X || Entero representado en hexadecimal con mayúsculas ||
|| %% || Carácter '%' ||
@@

En estos formatos se puede intercalar inmediatamente a continuación del '%' primero un signo '+' o un '-' que son opcionales y significan respectivamente alineación a la derecha o a la izquierda. En segundo lugar y de forma igualmente opcional se puede intercalar un número para indicar un ancho mínimo. (Si el dato ocupa más que el dato especificado se muestra el dato completo haciendo caso omiso de la indicación de anchura). En el caso de coma flotante se puede indicar el ancho total del campo y la precisión (anchura) de la parte decimal.

Veamos unos pocos ejemplos.

@@|| $ echo | awk '{ print "Hola mundo" }' Hola mundo $ echo | awk '{ printf "Hola %s\n", "mundo" }' Hola mundo $ echo | awk '{ printf "#%d#%s#\n", 77, "mundo" }' #77#mundo# $ echo | awk '{ printf "#%10d#%10s#\n", 77, "mundo" }' # 77# mundo# $ echo | awk '{ printf "#%-10d#%-10s#\n", 77, "mundo" }' #77 #mundo # $ echo | awk '{ printf "#%+4d#%+4s#\n", 77, "mundo" }' # +77#mundo# $ echo | awk '{ printf "#%04d#%+4s#\n", 77, "mundo" }' #0077#mundo# $ echo | awk '{ printf "#%010.5f#%E#%g\n", 21.43527923, 21.43527923, 21.43527923 }' #0021.43528#2.143528E+01#21.4353 $ echo | awk '{ printf "#%10.5f#%E#%g\n", 2140000, 2140000, 2140000 }' #2140000.00000#2.140000E+06#2.14e+06 ||
@@

Practique un poco investigando con más detalle el funcionamiento de estos formatos.
< anterior | 1 .. 5 6 7 8 9 .. 16 | siguiente >

Autor y licencia de 'Nociones de programación en awk'


Tutorial de Antonio Castro Snurmacher (Madrid 01/01/2000). . Extraido de: http://www.mononeurona.org/index.php?idp=462 CopyLeft
Este trabajo está licenciado bajo la Creative Commons License. 1999-2005 © :: MonoNeurona.org ::
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.