The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Correspondência de campos de linhas e, em seguida, que operam ashis.tewari Programação Shell Script e 3 12-04-2008 09:02
soma de todas as linhas correspondentes usando awk i.scientist UNIX para Dummies Perguntas & Respostas 8 08-06-2008 09:13
Como eliminar linhas duplicadas em um arquivo vamshikrishnab Programação Shell Script e 5 06-18-2008 11:00
Como eliminar nomeadamente linhas de um arquivo suresh3566 Programação Shell Script e 5 06-02-2008 06:07
Excluir linhas repetidas de um arquivo TONET Programação Shell Script e 8 04-08-2008 10:42

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-19-2009
Juha Juha is offline
Usuário
  
 

Join Date: Sep 2006
Lugares: 36
SED: apagar próxima fileira combinando e 4 linhas?

Oi,

Tentei olhar para a solução, e encontrei algo semelhante, mas que não poderia adaptar a solução para minhas necessidades ..

Estou a tentar combinar um padrão (neste caso "ProcessType") em um logfile, em seguida, elimine a linha e os 4 seguintes linhas.

O logfile olha como se segue:

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

Eu tentei isso:


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

Mas isso só resultou no 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 (permalink)  
Old 03-19-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2007
Mensagens: 4.342
Se awk é permitido:


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

Atenciosamente
  #3 (permalink)  
Old 03-19-2009
Juha Juha is offline
Usuário
  
 

Join Date: Sep 2006
Lugares: 36
Obrigado Franklin, não funcionou para mim no entanto ..


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

Com nawk que executa, mas elimina apenas a primeira ocorrência desse "bloco"


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 (permalink)  
Old 03-19-2009
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2007
Mensagens: 4.342
Não tenha entendido a questão, esta deve apagar as 4 primeiras linhas em todos os blocos:


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

Atenciosamente
  #5 (permalink)  
Old 03-19-2009
Juha Juha is offline
Usuário
  
 

Join Date: Sep 2006
Lugares: 36
Ótimo! Funciona perfeitamente! obrigado
  #6 (permalink)  
Old 03-19-2009
Shahul's Avatar
Shahul Shahul is offline
Usuário
  
 

Join Date: Aug 2008
Localização: Índia
Lugares: 175
Oi,

Espero que este também pode ajudá-lo ..


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

Obrigado
Sha
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 08:51.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0