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

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

Procurar palavras em certos campos


From: Anderson Montenegro dos Santos
Subject: Procurar palavras em certos campos
Date: Mon, 21 Aug 2000 16:02:16 -0300

   Alguem sabe como procurar uma palavra em um arquivo em determinados
campos . Por exemplo eu quero selecionar as palavras referente a data no
messages somente nos campos que se referem as datas.


   tail /var/log/messages | grep `date | cut -c04-19`




From (no email address) Mon Aug 21 12:32:45 2000
Return-Path: <address@hidden>
Received: (qmail 1273 invoked from network); 21 Aug 2000 19:32:45 -0000
Received: from unknown (10.1.10.26) by m2.onelist.org with QMQP; 21 Aug 2000 
19:32:45 -0000
Received: from unknown (HELO burns.conectiva) (200.250.58.146) by mta1 with 
SMTP; 21 Aug 2000 19:32:43 -0000
Received: (qmail 25181 invoked from network); 21 Aug 2000 19:35:36 -0000
Received: from verde.distro.conectiva (10.0.17.77) by burns.conectiva with 
SMTP; 21 Aug 2000 19:35:36 -0000
Date: Mon, 21 Aug 2000 16:35:21 -0300 (BRT)
X-Sender: aurelio@verde.distro.conectiva
To: address@hidden
Subject: Re: [shell-script] Procurar palavras em certos campos
In-Reply-To: <000701c00ba2$533eb580$address@hidden>
Message-ID: <Pine.LNX.4.21.0008211625230.1026-100000@verde.distro.conectiva>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
From: # aurelio marinho jargas <address@hidden>

@ 21/8, Anderson Montenegro dos Santos:
>    Alguem sabe como procurar uma palavra em um arquivo em determinados
> campos . Por exemplo eu quero selecionar as palavras referente a data no
> messages somente nos campos que se referem as datas.
> 
>    tail /var/log/messages | grep `date | cut -c04-19`

se vc quer apenas a palavra, e não a linha inteira, uma
combinação de cut+grep serve (ou apenas um sed)

  cut -c1-15 /var/log/messages | grep $DATA
 
sendo o $DATA a variável que contém a data que vc procura.

ou se vc quer a linha toda, use o grep mesmo. não vai haver
diferença de performance procurar apenas num campo ou na linha
toda, pois o grep sempre vai carregar a linha toda no seu
registrador interno. o que você pode fazer, é, sabendo que a data
que você procura SEMPRE está no começo da linha, usar uma
expressão regular:


grep "^$DATA" /var/log/messages

o circunflexo ^ antes da data indica "começo de linha", aí, além
de ficar bem mais rápido, pois o grep só vai tentar casar o
padrão no começo da linha, você obtém o resultado desejado.




> 
> Inscrição:     address@hidden
> 
> Sair da lista: address@hidden
> 
> Banco Dados:   http://www.egroups.com/group/shell-script


ADMINISTRADOR DA LISTA:

poderia ser colocado um (hífen-hífen-espaço-quebra_de_linha)
antes do rodapé padrão da lista para que os programas de email
saibam identificá-lo e cortá-lo automaticamente nas respostas,
pra não ficar aquela chuva de instruções de cadastramento quando
a discussão fica grande...



-- 
s·:(·>(·×^a]×http://www.verde666.org×^[:wq



reply via email to

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