![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| 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 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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 |
|
||||
|
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
...
|
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|