script [RESOLVIDO]

1. script [RESOLVIDO]

sheila
she

(usa Ubuntu)

Enviado em 30/11/2011 - 00:35h

Ola pessoal

Bom estou utilizando o comando grep para encontrar uma palavra especifica em varios arquivos *.log mas são muitos arquivos e estou tendo problemas porque como nos arquivos a palavra ocorre varias vezes esta sendo terrivel ter que editar. Gostaria de saber se alguem poderia me ajudar a fazer um script para isso. Ou se posso melhor usando o camando grep.

Valeu!


  


2. MELHOR RESPOSTA

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 03/12/2011 - 02:23h

resolveu?

3. Re: script [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 30/11/2011 - 01:07h

Explique melhor o que deseja fazer, poste um exemplo.

Você quer apenas buscar a ocorrência de uma palavra/sentença em um arquivo ou quer trocar a ocorrência da palavra/sentença por outra coisa??


4. Re: script [RESOLVIDO]

sheila
she

(usa Ubuntu)

Enviado em 30/11/2011 - 01:31h

Bom...

Estou lendo algumas coisas aqui, e acho que estou começando entender...

dei o comando $grep Excited State *.log cat> teste.dat

consegui enviar para o tesde.dat todas a informações contidas, porém Excited State aparece várias vezes em todo o arquivo.log

Sendo que necessito de parâmetros específicos dos arquivos.log como: números e unidades

Exemplo de saída do grep:

Excited state symmetry could not be determined.
Excited State 4: Singlet-?Sym 3.0983 eV 400.16 nm f=0.0392

ou seja, 3.0983 eV 400.16 nm f=0.0392


ok?




5. Re: script [RESOLVIDO]

Adriano Rodrigues Balani
balani

(usa Slackware)

Enviado em 30/11/2011 - 01:42h

Amigo, grosseiramente seria algo mais ou menos assim: cat arquivo.log | grep expressão > arquivo.txt

mas como o amigo rai3mb disse, explica melhor, para a gente poder te ajudar.


6. Re: script [RESOLVIDO]

Raimundo Alves Portela
rai3mb

(usa Outra)

Enviado em 30/11/2011 - 01:43h

Ok, então veja as variáveis que vc realmente quer, e vá filtrando usando expressão regular, pode até separar a saída colocando em arquivos diferentes para cada tipo de saída.

Exemplo de expressão
[0-9]*\.[0-9]*.*eV [0-9]*\.[0-9]*.*nm f=[0-9]*\.[0-9]*.*

vai casar:


3.0983 eV 400.16 nm f=0.0392

use a expressão no egrep '[0-9]*\.[0-9]*.*eV [0-9]*\.[0-9]*.*nm f=[0-9]*\.[0-9]*.*'

[0-9]*\.[0-9]*.*eV
casa qualquer quantidade de números '[0-9]*', tem que ter um ponto literal '\.', seguido de qualquer quantidade de números, finalizando com 'eV'

Abraços




7. Re: script [RESOLVIDO]

sheila
she

(usa Ubuntu)

Enviado em 05/12/2011 - 10:39h

rai3mb escreveu:

resolveu?




Resolvi, embora eu não sei se isso é correto:

$ cat *.log | grep 'f=[0-9]*\.[0-9]*.*' > teste.dat

todas as informações antes do valor de f=x.xxxx foram adicionadas ao teste.dat, quando eu coloquei toda a expressão utilizando o egrep não funcionou, tentei com o grep e o resultado foi o mesmo. Deu certo apenas como o exemplo acima.

Obrigada pela ajuda

\o/

abraço






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts