The UNIX and Linux Forums  
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.

Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
¿Existe una solución para este Sed? racbern Programación de scripts de shell y 1 03-13-2008 11:31 AM
solución para la necesidad de secuencias de comandos kkc Programación de scripts de shell y 14 01-31-2008 09:17 PM
Sun y la solución de copia de seguridad Jshwon Sun Solaris 1 10-23-2007 12:54 PM
Grep solución Amruta Pitkar Programación de scripts de shell y 3 05-03-2007 02:57 AM
Linux como una solución NAS? kjbaumann Linux 1 08-30-2006 12:09 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 03-06-2008
timj123 timj123 is offline
Usuario Registrado
  
 

Fecha: enero 2008
Puestos: 80
¿Existe una solución para este awk?

Estoy escribiendo un script de awk que recoge algunos datos de ciertos campos. Awk que necesitaba una solución para esto, porque más tarde se convertiría en una función en el script.

Tengo los siguientes datos que necesito de salida en una sola línea, pero se extiende a través de registros y expedientes de líneas multilple no están "juntos". Ejemplo de ello sería tom a continuación, grabar "Tom" que figura a continuación es el 4 de diferentes líneas, pero sólo necesitan datos a partir del 2 de las líneas, también necesitan la misma información de patrones, Tim, y poco, o el que más tiene un registro como el formato a continuación.

Código:
2008   fl01   LAC   2589   polk   doal
xx 2008q1 mx
     sect 25698541

     Sales 08 Dept group

        lead1    2008q1
        tom
        pat
        tim
        tad

        lead1  07q4   07q3   07q2   07q1   06q4   06q3   jan
        tom    0      96     0      3312   3624   0      312
        pat    0      17     0      0      30     0      30
        tim    357    03     04     25     3020   3120   20
        tad    1734   0      0      0      5213   5213   0

        lead1  feb    mar    apr    may    jun    jul    aug
        tom    0      96     0      0      0      0      0
        pat    0      17     0      0      0      0      0
        tim    357    23     5      7      8      14     70
        tad    1734   0      0      0      0      0      0

        lead1  sept   oct    nov    dec
        tom    0      0      460    92
        pat    0      0      240    0
        tim    0      21     1800   0
        tad    0      0      672    0

2008   fl01  LAC   2589    polk   doal
yy 2008q1 mx
     sect 2569852

     Sales 08 Dept group
Que necesitaba la siguiente salida:

Código:
lead1   07q4    07q1    06q4    06q3    sept    oct     nov
tim	357	25	3020	3120	0	21	1800 
tad	1734	0	5213	5213	0	0	672
¿Existe una solución a este awk?

gracias de antemano por esto, porque creo que esto es difícil.
  #2 (Enlace permanente)  
Old 03-11-2008
timj123 timj123 is offline
Usuario Registrado
  
 

Fecha: enero 2008
Puestos: 80
Cita:
Publicado originalmente por timj123 View Post
Estoy escribiendo un script de awk que recoge algunos datos de ciertos campos. Awk que necesitaba una solución para esto, porque más tarde se convertiría en una función en el script.

Tengo los siguientes datos que necesito de salida en una sola línea, pero se extiende a través de registros y expedientes de líneas multilple no están "juntos". Ejemplo de ello sería tom a continuación, grabar "Tom" que figura a continuación es el 4 de diferentes líneas, pero sólo necesitan datos a partir del 2 de las líneas, también necesitan la misma información de patrones, Tim, y poco, o el que más tiene un registro como el formato a continuación.

Código:
2008   fl01   LAC   2589   polk   doal
xx 2008q1 mx
     sect 25698541

     Sales 08 Dept group

        lead1    2008q1
        tom
        pat
        tim
        tad

        lead1  07q4   07q3   07q2   07q1   06q4   06q3   jan
        tom    0      96     0      3312   3624   0      312
        pat    0      17     0      0      30     0      30
        tim    357    03     04     25     3020   3120   20
        tad    1734   0      0      0      5213   5213   0

        lead1  feb    mar    apr    may    jun    jul    aug
        tom    0      96     0      0      0      0      0
        pat    0      17     0      0      0      0      0
        tim    357    23     5      7      8      14     70
        tad    1734   0      0      0      0      0      0

        lead1  sept   oct    nov    dec
        tom    0      0      460    92
        pat    0      0      240    0
        tim    0      21     1800   0
        tad    0      0      672    0

2008   fl01  LAC   2589    polk   doal
yy 2008q1 mx
     sect 2569852

     Sales 08 Dept group
Que necesitaba la siguiente salida:

Código:
lead1   07q4    07q1    06q4    06q3    sept    oct     nov
tim	357	25	3020	3120	0	21	1800 
tad	1734	0	5213	5213	0	0	672
¿Existe una solución a este awk?

gracias de antemano por esto, porque creo que esto es difícil.
cualquier ayuda por ahí para esto, por favor?
  #3 (Enlace permanente)  
Old 03-12-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
adicto
  
 

Fecha: enero 2007
Ubicación: Варна, България / Milán, Italia
Puestos: 2.854
Código:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov" }
$1 ~ "^("users")$" && NF > 1 { 
x[$1]++
if (x[$1] == 1)
  p[$1] = sprintf ("%s\t%s\t%s\t%s\t%s", $1, $2, $5, $6, $7)
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\n", p[$1], $2, $3, $4 
 }
}' users="tim|tad" file
Puede añadir más usuarios en el modelo: tim | tad | pat etc
Uso o nawk / usr/xpg4/bin/awk en Solaris.
  #4 (Enlace permanente)  
Old 03-13-2008
timj123 timj123 is offline
Usuario Registrado
  
 

Fecha: enero 2008
Puestos: 80
Cita:
Publicado originalmente por radoulov View Post
Código:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov" }
$1 ~ "^("users")$" && NF > 1 { 
x[$1]++
if (x[$1] == 1)
  p[$1] = sprintf ("%s\t%s\t%s\t%s\t%s", $1, $2, $5, $6, $7)
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\n", p[$1], $2, $3, $4 
 }
}' users="tim|tad" file
Puede añadir más usuarios en el modelo: tim | tad | pat etc
Uso o nawk / usr/xpg4/bin/awk en Solaris.
Esto funciona GRAN, realmente apreciamos la ayuda en esto, pero lo que si quería resumen, columnas 07q4 y 07q1 y, a continuación, poner el valor que al final de la declaración printf? Después de haber problemas con esa parte. ¿Pueden ayudarme?
  #5 (Enlace permanente)  
Old 03-13-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
adicto
  
 

Fecha: enero 2007
Ubicación: Варна, България / Milán, Italia
Puestos: 2.854
Código:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov     tot" }
$1 ~ "^("users")$" && NF > 1 { 
x[$1]++
if (x[$1] == 1) {
  p[$1] = sprintf ("%s\t%s\t%s\t%s\t%s", $1, $2, $5, $6, $7)
  t[$1] = $2 + $5
}
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\t%d\n", p[$1], $2, $3, $4, t[$1] 
 }
}' users="tim|tad" file
  #6 (Enlace permanente)  
Old 03-13-2008
timj123 timj123 is offline
Usuario Registrado
  
 

Fecha: enero 2008
Puestos: 80
OK, ahora me siento estúpida.
Gracias de nuevo soo me ahorro mucho en una semana sobre el valor de la frustración.
Me doy cuenta de que debemos examinar estas cuestiones, como desde un ángulo diferente.
  #7 (Enlace permanente)  
Old 03-13-2008
aspect_p aspect_p is offline
Usuario Registrado
  
 

Fecha: marzo 2008
Publicaciones: 13
Cita:
Publicado originalmente por radoulov View Post
Código:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov     tot" }
$1 ~ "^("users")$" && NF > 1 { 
x[$1]++
if (x[$1] == 1) {
  p[$1] = sprintf ("%s\t%s\t%s\t%s\t%s", $1, $2, $5, $6, $7)
  t[$1] = $2 + $5
}
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\t%d\n", p[$1], $2, $3, $4, t[$1] 
 }
}' users="tim|tad" file
¿Puede ir un poco más allá en la descripción de los métodos utilizados awk en el guión, im sorry a ser una molestia, pero algo como esto puede ser de gran as en mi arsenal de secuencias de comandos de shell.
Closed Thread

Marcadores

Etiquetas
solaris

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 11:08 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0