The UNIX and Linux Forums  


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
Coincidencia de campos de filas y de funcionamiento ashis.tewari Programación de scripts de shell y 3 12-04-2008 09:02 AM
suma de todos los registros coincidentes usando awk i.scientist UNIX for Dummies Preguntas y Respuestas 8 08-06-2008 09:13 PM
cómo eliminar registros duplicados en un archivo vamshikrishnab Programación de scripts de shell y 5 06-18-2008 11:00 AM
Cómo eliminar filas en particular a partir de un archivo suresh3566 Programación de scripts de shell y 5 06-02-2008 06:07 AM
Eliminar filas repetidas de un archivo Tonet Programación de scripts de shell y 8 04-08-2008 10:42 AM

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-19-2009
Juha Juha is offline
Usuario Registrado
  
 

Fecha: Sep 2006
Puestos: 36
SED: eliminar la fila correspondiente y 4 siguientes filas?

Hola,

Trató de buscar solución, y encontré algo similar pero no se pudo adaptar la solución para mis necesidades ..

Estoy tratando de coincidir con un patrón (en este caso "ProcessType") en un 'log', a continuación, elimine esta línea y los 4 siguientes líneas.

El logfile es el siguiente:

Código:
ProcessType:    PROCESS_A (0) <---- delete this
SequenceNumber: 8285 <---- delete this
 <---- delete this
2009 Mar 07  22:04:23:679   0:8285 <---- delete this
 <---- delete this
ProcessType:    PROCESS_A (0)
SequenceNumber: 8286

2009 Mar 07  22:04:23:679   0:8286

ProcessType:    PROCESS_B (68)
SequenceNumber: 40689

2009 Mar 07  22:04:23:698  68:40689

DATA that should not be deleted

ProcessType:    PROCESS_B (68)
SequenceNumber: 40690

2009 Mar 07  22:04:23:698  68:40690

DATA that should not be deleted

ProcessType:    PROCESS_C (93)
SequenceNumber: 36235

2009 Mar 07  22:04:23:829  93:36235

ProcessType:    PROCESS_C (93)
SequenceNumber: 36236

2009 Mar 07  22:04:23:829  93:36236

DATA that should not be deleted

He intentado esto:


Código:
sed -e '/\<ProcessType\>/,/$/d' < log.txt > test

Pero que sólo dieron resultado en el presente:


Código:
2009 Mar 07  22:04:23:679   0:8285


2009 Mar 07  22:04:23:679   0:8286


2009 Mar 07  22:04:23:698  68:40689


2009 Mar 07  22:04:23:698  68:40690


2009 Mar 07  22:04:23:829  93:36235


2009 Mar 07  22:04:23:829  93:36236


2009 Mar 07  22:04:23:945  91:89062


2009 Mar 07  22:04:23:945  91:89063


2009 Mar 07  22:04:24:018  91:89064


2009 Mar 07  22:04:24:018  91:89065


2009 Mar 07  22:04:24:018  91:89066

  #2 (Enlace permanente)  
Old 03-19-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Fecha: febrero 2007
Mensajes: 4.330
Si se permite awk:


Código:
awk '/ProcessType:/ && !p {i=-4;p=1} i++ > 0' file

Recuerdos
  #3 (Enlace permanente)  
Old 03-19-2009
Juha Juha is offline
Usuario Registrado
  
 

Fecha: Sep 2006
Puestos: 36
Gracias Franklin, no trabajo para mí sin embargo ..


Código:
# awk '/ProcessType:/ && !p {i=-4;p=1} i++ > 0' file
awk: syntax error near line 1
awk: bailing out near line 1

Con nawk se ejecuta, pero sólo elimina la primera aparición de ese "bloque"


Código:
# nawk '/ProcessType:/ && !p {i=-4;p=1} i++ > 0' file
ProcessType:    PROCESS_A (0)
SequenceNumber: 8286

2009 Mar 07  22:04:23:679   0:8286

ProcessType:    PROCESS_B (68)
SequenceNumber: 40689

2009 Mar 07  22:04:23:698  68:40689

DATA that should not be deleted

ProcessType:    PROCESS_B (68)
SequenceNumber: 40690
...

  #4 (Enlace permanente)  
Old 03-19-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Fecha: febrero 2007
Mensajes: 4.330
He entendido la pregunta, esta debe eliminar las primeras 4 líneas en todos los bloques:


Código:
nawk '/ProcessType:/{i=-4} i++ > 0' file

Recuerdos
  #5 (Enlace permanente)  
Old 03-19-2009
Juha Juha is offline
Usuario Registrado
  
 

Fecha: Sep 2006
Puestos: 36
Gran! Funciona perfectamente! gracias
  #6 (Enlace permanente)  
Old 03-19-2009
Shahul's Avatar
Shahul Shahul is offline
Usuario Registrado
  
 

Fecha: agosto 2008
Ubicación: India
Puestos: 175
Hola,

Espero que esto también le puede ayudar ..


Código:
sed -n  '/ProcessType:/ {n;n;n;n;n;p}' out1.lst

Gracias
Sha
Closed Thread

Marcadores

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 10:56 PM.


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