Versión Completa : Insertar con AWK
caplinux
mayo 5, 2004, 06:01
Hola como estan..
Tengo un pequeño problema con awk que le doy un printf
$3 $4 "|" "%8s\n", $5 } pero esto lo unico que hace es
agregarme espacios a la derecha y yo necesito si
alguien conoce como hacer que en vez de colocarme los
espacios me coloque "ceros" "0" en los espacios.
Gracias
Sh4dow
mayo 5, 2004, 09:14
pone un poquito mas del script o si se puede pone el script completo para ver si te podemos ayudar en algo
A la derecha??? A mi me los pone a la izquierda:
krieg@ciudadmomia krieg $ echo 5 | awk ' { printf("%8s\n", $1) } '
5
krieg@ciudadmomia krieg $ awk --version
GNU Awk 3.1.3
Copyright (C) 1989, 1991-2003 Free Software Foundation.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
krieg@ciudadmomia krieg $
Bueno, no se si le entendi bien, pero creo que lo que quiere es que le llene con ceros en lugar de espacios, eso no lo puede hacer si trata la variable como string, tiene que hacerlo como numerico y usando un punto y dos valores (ancho total, ancho a llenar con ceros), asi:
krieg@ciudadmomia krieg $ echo 5 | awk ' { printf("%8.8d\n", $1) } '
00000005
krieg@ciudadmomia krieg $
Si no es lo que quiere vuelva y pregunte aqui, soy master de awk y lo que no se me lo invento.
caplinux
mayo 6, 2004, 07:03
Gracias Krieg
clap clap clap clap clap... bien por ese ejemplo...
awk para ke mas sirve? ke ventajas tiene awk sobre otros lenguajes interpretados como perl o tcl?
Awk es para manipulacion de datos donde cada linea se procesa repetitivamente y cada columna se recibe en una variable $1, $2, $3, etc.
Yo lo uso porque soy de la vieja guardia, la mayoria de los que comenzamos con *nix en los 80s nos reusamos a dejarlo, principalmente por que se parece a C y es muy facil de entenderlo, porque ya lo sabemos y por rebeldia :)
Perl es mucho mas poderoso, pero es complicado de entender y sobre todo el manejo de expresiones no es obvio, uno ve cosas que en una linea hacen y deshacen pero necesita uno media hora para entender como.
Si domina awk es una herramienta excelente para la linea de comando, sobre todo administrando maquinas grandes, imaginense una maquina con 25.000 procesos corriendo, ahi es donde saber usar todo clase de filtros permiten administrarla efectivamente. (imaginese tener que ver pasar 25.000 lineas cuando hace un ps).
vBulletin®, Copyright ©2000-2009, Jelsoft Enterprises Ltd.