Foros del Web » Administración de Sistemas » Unix / Linux »

Duda sobre awk

Estas en el tema de Duda sobre awk en el foro de Unix / Linux en Foros del Web. Hola a todos!! Tengo una duda que no sé solucionar. Tengo unos datos ordenados por año, mes y día (365 datos por año). Sólo quiero ...
  #1 (permalink)  
Antiguo 30/10/2012, 06:57
 
Fecha de Ingreso: septiembre-2012
Mensajes: 15
Antigüedad: 12 años, 3 meses
Puntos: 1
Duda sobre awk

Hola a todos!!

Tengo una duda que no sé solucionar. Tengo unos datos ordenados por año, mes y día (365 datos por año). Sólo quiero tener los datos de los días 1, 2 y 3 de enero de cada cada año.

Mi datos son estos:

año mes día valor
1993 1 1 56,27
1993 1 2 54,23
1993 1 3 23,24
1993 1 4 69,3
1993 2 1 25,25
1993 2 2 35
1993 2 3 10,9
1993 2 4 19,2
1994 1 1 96,3
1994 1 2 57,8
1994 1 3 53,3
1994 1 4 23,5
1994 2 1 57,3546
1994 2 2 54,6948
1994 2 3 24,626
1994 2 4 69,805
1995 1 1 25,95
1995 1 2 35,218
1995 1 3 11,284
1995 1 4 21,126
1995 2 1 97,456
1995 2 2 58,866
1995 2 3 53,77
1995 2 4 24,647092

he utilizado la opción de awk, pero estoy liadísimo. Alguien puede darme alguna pista? Muchísimas gracias por vuestra colaboración
  #2 (permalink)  
Antiguo 30/10/2012, 07:17
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda sobre awk

¿Qué has hecho hasta ahora? porque si el formato es consistente, bastaría con que tomes aquellas filas en las que el campo $2 es 1, y el campo $3 es 1
Código bash:
Ver original
  1. awk '$2==1 && $3==1 { print }'
  #3 (permalink)  
Antiguo 31/10/2012, 04:36
 
Fecha de Ingreso: septiembre-2012
Mensajes: 15
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Duda sobre awk

Pues estaba haciendo algo parecido, pero le ponía [1-7] y no salía nada, pero con lo que me dices sale perfecto. Muchísimas gracias :D
  #4 (permalink)  
Antiguo 11/12/2012, 03:55
 
Fecha de Ingreso: diciembre-2012
Mensajes: 1
Antigüedad: 12 años
Puntos: 0
Respuesta: Duda sobre awk

Buenas estoy empezando con awk y con programacion y tengo una gran duda, necesito el script awk para procesar un fichero que contenga los siguientes registros:

Pepe:IAW-4:HLC-7:Servicios-4:FOL-5
Carlos:IAW-7:HLC-6:Servicios-8:FOL-9
...
...

y que como salida sea:

-la cantidad de registros procesados.
-Alumnos con FOL aprobado: 4
-Alumnos con IAW aprobado: 6
.
.
.
¿Podriasis ayudarme?
  #5 (permalink)  
Antiguo 11/12/2012, 06:48
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Duda sobre awk

Bienvenido juandasd89,
En el futuro, por favor abrí nuevas consultas en nuevos temas.
Recordá además que acá no estamos para hacer tareas, tenés que mostrarnos qué has hecho por tu cuenta para solucionar el problema.

Vas a necesitar los bloques BEGIN y END. Dentro del programa, si la línea coincide con el criterio, incrementas las variables.
Código BASH:
Ver original
  1. BEGIN {
  2.     registros = 0
  3.     fol = 0
  4.     iaw = 0
  5. }
  6. {
  7.     incrementar registros
  8.     si el campo de FOL tiene el valor correcto, incrementar fol
  9.     si el campo de IAW tiene el valor correcto, incrementar iaw
  10. }
  11. END {
  12.     print registros
  13.     print fol
  14.     print iaw
  15. }
Sugerencia: awk -F '[:-]'

Etiquetas: awk
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:11.