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

Script awk sacar inicio y termino cront

Estas en el tema de Script awk sacar inicio y termino cront en el foro de Unix / Linux en Foros del Web. Estimados tengo un script que saca el inicio y el termino de los log de cront , lo malo que no saca los patrones exactos ...
  #1 (permalink)  
Antiguo 27/07/2015, 09:46
 
Fecha de Ingreso: julio-2015
Ubicación: chile
Mensajes: 3
Antigüedad: 8 años, 7 meses
Puntos: 0
Script awk sacar inicio y termino cront

Estimados tengo un script que saca el inicio y el termino de los log de cront , lo malo que no saca los patrones exactos que ingreso , por ejemplo con grep -w "2302" solo arroja ese resultado exacto ejeplo:

> root 2302 c Wed Jul 22 19:05:00 2015
< root 2302 c Wed Jul 22 19:09:27 2015

pero con awk me arroja todas las concordancias y yo solo quiero sacar lo que realmente necesito , un detalle es que esta linea que pondre a continuacion arroja el nombre junto el id de proceso lo que es critico ya que necesito el nombre de la shell que arroja el procesos junto el id con la entrada y salida asi

> CMD: /home/prueba2 /prueba/proc/shell.sh
> root 28282 c Wed Jul 22 19:05:00 2015
< root 28282 c Wed Jul 22 19:09:27 2015

cat log | awk -vN=1 -vP=2302 'BEGIN{N++}{Buf[NR%N]=$0}; $0 ~ P {for(i=-N+1; i<0; i++) if(NR+i>0) print Buf[(NR+i)%N]; print}'| awk 'NR==1,NR==3'

> CMD: /home/prueba2 /prueba/proc/shell.sh
> root 230202 c Wed Jul 22 19:05:00 2015
< root 2302c Wed Jul 22 19:09:27 2015
> root 23002 Wed Jul 22 19:09:27 2015


bueno resumiendo necesito que awk solo me arroje el valor exacto que escribo en el patron que es el 2302 ya que mi script lo saca de una lista donde estan todo los id de procesos . de antemano muchas gracias
  #2 (permalink)  
Antiguo 27/07/2015, 14:50
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Script awk sacar inicio y termino cront

Si no entendí mal, creo que esto se puede acercar:

grep -B 1 -w 2302

-B hace que se imprima una línea antes de la coincidencia, lo cual te debería dar una salida que contiene las líneas que contengan "2302" y la línea CMD anterior.

Dicho sea de paso, cambiar

-vP=2302

por

-vP=" 2302 "

(es decir, forzar los espacios) debería darte también lo que necesitás.
  #3 (permalink)  
Antiguo 28/07/2015, 11:33
 
Fecha de Ingreso: julio-2015
Ubicación: chile
Mensajes: 3
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Script awk sacar inicio y termino cront

Estimado ,

Tu me dices que solo agregando un espacio al vP=" 2307" hara que mi busqueda solo sea el valor exacto como en grep -w ?
  #4 (permalink)  
Antiguo 28/07/2015, 11:36
 
Fecha de Ingreso: julio-2015
Ubicación: chile
Mensajes: 3
Antigüedad: 8 años, 7 meses
Puntos: 0
Respuesta: Script awk sacar inicio y termino cront

cat log | awk -vN=1 -vP=" 855" 'BEGIN{N++}{Buf[NR%N]=$0}; $0 ~ P {for(i=-N+1; i<0; i++) if(NR+i>0) print Buf[(NR+i)%N]; print}'

> root 8553 c Mon Jul 27 00:05:00 2015
> root 8553 c Mon Jul 27 00:05:00 2015
< sys 8551 c Mon Jul 27 00:05:01 2015
< sys 8551 c Mon Jul 27 00:05:01 2015
< root 8552 c Mon Jul 27 00:05:01 2015
< root 8552 c Mon Jul 27 00:05:01 2015
< root 8553 c Mon Jul 27 00:05:03 2015
< root 8553 c Mon Jul 27 00:05:03 2015
< root 8550 c Mon Jul 27 00:05:58 2015


como vez me sigue arrojando el valor aproximado no el exacto -_-
  #5 (permalink)  
Antiguo 29/07/2015, 10:49
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Script awk sacar inicio y termino cront

es que has puesto solamente un espacio al principio, cuando en mi ejemplo pone espacio al principio y al final

Etiquetas: awk, linux
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 23:05.