shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] ajuda com comando sed


From: Moacir Souza
Subject: Re: [shell-script] ajuda com comando sed
Date: Thu, 27 Nov 2008 15:24:09 -0200

     Anderson,

     Com o while read você consegue obter todas as informações que
precisa, mas por causa da disposição das colunas, você receberá um
pequeno "extra" nas linhas que começam com reboot. Veja abaixo:

$ while read col1 lixo lixo lixo lixo col6 lixo col8 col9
> do
> echo $col1 $col6 $col8 $col9
> done < arquivo

bdacp 12:16 down (00:31)
bdacp 12:53 down (00:13)
bdacp 13:09 down (02:34)
reboot Nov 12:15 (00:32)
reboot Nov 12:48 (00:18)
reboot Nov 13:07 (02:35)
teste 12:53 12:53 (00:00)
teste 12:51 12:55 (00:04)
teste 13:09 13:31 (00:22)
usuario 12:49 12:50 (00:00)
usuario 12:49 13:04 (00:14)
usuario 13:09 13:23 (00:14)

     Estou considerando que você realmente não precisa daquele hífen
do arquivo original, mas se precisar, é só adicionar a coluna
correspondente após o while read.
     Para resolver a questão do "extra", que nesse caso é a string
"Nov", você poderia colocar um sed depois do redirecionamento de
arquivo e removê-lo ( | sed "s/Nov//g"), mas a desvantagem disso é que
a solução não é genérica, ou seja, se você tiver um "Dez", "Jan", ou
outra coisa que não seja "Nov", não funciona a não ser que todo mundo
esteja especificado.
     Uma maneira de resolver isso definitivamente é colocar as linhas
que começam com reboot em outro arquivo, remover a segunda coluna
(pode ser com o while read) e depois juntar tudo no arquivo final.
Claro que também é possível fazer o mesmo com um sed mais elaborado ou
algumas artimanhas do awk, mas acredito que não vale a pena um esforço
tão grande. Se aparecer uma idéia mais concisa, apresento ao grupo
depois.

Abraços,
Moacir Filho


2008/11/27 jimmy <address@hidden>:
> On Thu, Nov 27, 2008 at 04:38:59PM +0000, Anderson Souza wrote:
>> Olá pessoal... tenho o seguinte arquivo:
>>
>> cat file.txt
>>
>> bdacp tty1 Thu Nov 13 12:16 - down (00:31)
>> bdacp tty3 Thu Nov 13 12:53 - down (00:13)
>> bdacp tty3 Thu Nov 13 13:09 - down (02:34)
>> reboot system boot 2.4.31 Thu Nov 13 12:15 (00:32)
>> reboot system boot 2.4.31 Thu Nov 13 12:48 (00:18)
>> reboot system boot 2.4.31 Thu Nov 13 13:07 (02:35)
>> teste pts/0 Thu Nov 13 12:53 - 12:53 (00:00)
>> teste tty2 Thu Nov 13 12:51 - 12:55 (00:04)
>> teste tty2 Thu Nov 13 13:09 - 13:31 (00:22)
>> usuario pts/0 Thu Nov 13 12:49 - 12:50 (00:00)
>> usuario tty1 Thu Nov 13 12:49 - 13:04 (00:14)
>> usuario tty1 Thu Nov 13 13:09 - 13:23 (00:14)
>>
>>
>> e preciso dessas informações
>>
>> bdacp 12:16 - down (00:31)
>> bdacp 12:53 - down (00:13)
>> bdacp 13:09 - down (02:34)
>> reboot 12:15 (00:32)
>> reboot 12:48 (00:18)
>> reboot 13:07 (02:35)
>> teste 12:53 - 12:53 (00:00)
>> teste 12:51 - 12:55 (00:04)
>> teste 13:09 - 13:31 (00:22)
>> usuario 12:49 - 12:50 (00:00)
>> usuario 12:49 - 13:04 (00:14)
>> usuario 13:09 - 13:23 (00:14)
>>
>> estou tentando com o sed mas não to consegindo... alguem pode medar uma
>> idéia?
>> Obrigado!!
>> --
>> Anderson Souza
>> Email: address@hidden
>> Skype: anderson1904
>> Msn: address@hidden
>> Fone: (12)9732-9877
>> __________________________________________________________
>> "Os que desprezam pequenos acontecimentos, dificilmente farão grandes
>> descobertas."
>>
>> ------------------------------------
>
> saudações Anderson,
>
> nesse exemplo que você mandou, uma substituição simples resolve:
>
> sed 's/ \+.*Thu Nov 13//' file.txt
>
> outra coisa: considere o uso do awk em arquivos de "log".
> 



-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Moacir da Cruz Souza Filho

-Analista de Sistemas: Suporte Unix Avançado
Serviço Federal de Processamento de Dados

-Mestrando em Ciências da Computação
Universidade de Brasília

-Bacharel em Engenharia da Computação
Escola Politécnica de Pernambuco
Universidade de Pernambuco

-Técnico em Eletrônica
Escola Técnica Federal de Pernambuco

-Linux user #449600
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Página pessoal: http://moacir.souza.googlepages.com
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


reply via email to

[Prev in Thread] Current Thread [Next in Thread]