[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
grep ou sed - melhorado
From: |
lferreir1 |
Subject: |
grep ou sed - melhorado |
Date: |
Tue, 08 Mar 2005 11:07:14 -0000 |
User-agent: |
eGroups-EW/0.82 |
Valeu pelas dicas, porém eu acho que não expressei bem o meu exemplo.
Abaixo um pedaço do arquivo de log, ao qual quero extrair alguma
informaçoes.
# cat bkdump_full1_0803_02.log
BACKUP INICIADO EM Tue Mar 8 02:31:48 GMT 2005
DUMP: Writing 63 Kilobyte records
DUMP: Date of this level 0 dump: Tue Mar 08 02:31:54 2005
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rdsk/c7t1d10s0 (edglobo2:/u11) to /dev/rmt/2un.
DUMP: Mapping (Pass I) [regular files]
DUMP: Mapping (Pass II) [directories]
DUMP: Estimated 32164476 blocks (15705.31MB).
DUMP: Dumping (Pass III) [directories]
DUMP: Dumping (Pass IV) [regular files]
DUMP: 35.90% done, finished in 0:17
DUMP: 71.55% done, finished in 0:07
DUMP: 32164396 blocks (15705.27MB) on 1 volume at 9653 KB/sec
DUMP: Archiving dump to
`/u00/prd/globo/log/bkdump_full1_0803_02_archive_u11'
DUMP: DUMP IS DONE
DUMP: Level 0 dump on Tue Mar 08 02:31:54 2005
DUMP: Writing 63 Kilobyte records
DUMP: Date of this level 0 dump: Tue Mar 08 02:59:48 2005
DUMP: Date of last level 0 dump: the epoch
DUMP: Dumping /dev/rdsk/c7t1d3s0 (edglobo2:/u06) to /dev/rmt/2un.
DUMP: Mapping (Pass I) [regular files]
DUMP: Mapping (Pass II) [directories]
DUMP: Estimated 34688586 blocks (16937.79MB).
........
........
DUMP: 32711236 blocks (15972.28MB) on 2 volumes at 8497 KB/sec
DUMP: Archiving dump to
`/u00/prd/globo/log/bkdump_full1_0803_02_archive_u08'
DUMP: DUMP IS DONE
DUMP: Level 0 dump on Tue Mar 08 06:07:34 2005
TERMINO DO BACKUP AS Tue Mar 8 06:42:01 GMT 2005
Quais informações eu quero:
BACKUP INICIADO EM Tue Mar 8 02:31:48 GMT 2005
DUMP: Dumping /dev/rdsk/c7t1d10s0 (edglobo2:/u11) to /dev/rmt/2un.
DUMP: 32164396 blocks (15705.27MB) on 1 volume at 9653 KB/sec
DUMP: Dumping /dev/rdsk/c7t1d3s0 (edglobo2:/u06) to /dev/rmt/2un.
DUMP: 34688554 blocks (16937.77MB) on 1 volume at 9481 KB/sec
......
......
TERMINO DO BACKUP AS Tue Mar 8 06:42:01 GMT 2005
Como podem perceber, preciso pegar somente as informações como início
e o fim (isso eu sei fazer, com sed q $i e sed '$!d' ), mas não sei
como pegar a próxima informação, como qual FS que está dumpeando,
o próximo que fala quantos MB foram gravados na mídia, e por aí vai
Espriquei ou compriquei?
Valeu mais uma vêz!
Luiz
--- Em address@hidden, Adam Victor Brandizzi
<qbyron@y...> escreveu
> --- Eliphas Levy Theodoro <yahoo@e...>
> > Olá Luiz,
> >
> > Não entendi bem o padrão que você deseja. Pelo
> > que parece você quer
> > todas as linhas ímpares (começa em UM), e a
> > última. É isso? Se não,
> > explica de novo pra gente.
> >
> > Caso o arquivo tiver número de linhas par, esse
> > sed vai te dar as
> > linhas pares do arquivo:
> > $ sed -n '1~2p' arq.log
> >
> > Caso for ímpar, esse outro vai dar as linhas
> > pares, e a última linha:
> > $ sed -n '1~2p;$p' arq.log
> >
> > Você pode checar se é par ou ímpar antes, com o
> > wc:
> >
> > #!/bin/bash
> > if wc -l < arq.log | grep -q "[02468]$"; then
> > sed -n '1~2p' arq.log
> > else
> > sed -n '1~2p;$p' arq.log
> > fi
>
> Bom! A primeira solução não é muito boa porque
> repetiria a última linha se ela também fosse
> ímpar, e a segunda ainda evita isto, mas há como
> evitar chamadas ao wc, ao if e ao grep:
>
> sed -n '1~2{p,d};$p' arq.log
>
> Neste caso, se a linha for ímpar, ele imprime e
> apaga o conteúdo do espaço de comparação, de modo
> que, se o segundo comando ($p) for executado, não
> haverá mais linha a ser apagada. É um pouco mais
> eficiente - mas acho que escrevi isto mais por
> ser um viciado em sed :D, já que nem sabemos ao
> certo qual a saída esperada...
>
> =====
> '()
>
> Adam Victor Nazareth Brandizzi
> Estudante de Ciência da Computação - UnB
> e-mail: adam@c...
> alternativa: qbyron@y...
> ICQ: 168537710
>
> __________________________________________________
> Converse com seus amigos em tempo real com o Yahoo! Messenger
> http://br.download.yahoo.com/messenger/
- grep ou sed, lferreir1, 2005/03/07
- Re: [shell-script] grep ou sed, Eliphas Levy Theodoro, 2005/03/07
- Re: [shell-script] grep ou sed, Adam Victor Brandizzi, 2005/03/07
- Re: [shell-script] grep ou sed - melhorado, Eliphas Levy Theodoro, 2005/03/08
- Re: grep ou sed - melhorado, lferreir1, 2005/03/08
- sed - dúvida parte 2, lferreir1, 2005/03/15
- Re: [shell-script] sed - dúvida parte 2, SuSE List, 2005/03/15
- Re: sed - dúvida parte 2, lferreir1, 2005/03/16
- Re: [shell-script] Re: sed - dúvida parte 2, SuSE List, 2005/03/16