Organizar arquivo apenas com números [RESOLVIDO]

1. Organizar arquivo apenas com números [RESOLVIDO]

Thiago do Nascimento Sabo
thiagosabo

(usa Ubuntu)

Enviado em 10/01/2017 - 04:16h

Salve galera do VOL!!

Estou algumas semanas caçando uma maneira de organizar um log de acompanhamento apenas com números. O problema é que com o comando sort ele organiza TUDO! hehe, fii da mãe di danadu di bom! Porém gostaria de organizar este log redirecionando (>>) apenas os números organizados para outro(s) arquivo(s).
Ex... Possuo o log:
== RESSUPRIMENTO INTEGRADO - CD: 7006 - ESTAB: 224 - NRO_SEQ: 3749709 - SEQ_INT
WM
== RESSUPRIMENTO INTEGRADO - CD: 7006 - ESTAB: 226 - NRO_SEQ: 3749710 - SEQ_INT

Os números 224 e 226 são (inicialmente) os que me interessam.
Problemas...O sort combinando com o Cut, possui a opção de organizar por colunas, mas percebam que entre a linha 1 e a linha 3 existe as letras "WM" que faz o Cut perder referência nas milhaaares de linhas abaixo, enfim quem projeta o processamento de informações nunca pensa em quem um dia poderá filtrá-las para alguma verificação =(

Espero que minha dúvida contribua de alguma maneira para o aprendizado de alguém! Obrigado à todos!!


  


2. Re: Organizar arquivo apenas com números

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 10/01/2017 - 09:23h

Tente, antes do cut, usar um filtro como o grep. Ex:
cat teste.log | grep '==' | cut .... 

Vai mostrar somente as linhas que iniciam com "==" e não mostrará as que iniciam com "WM"




______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro: http://biebian.sourceforge.net/


3. Re: Organizar arquivo apenas com números [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 10/01/2017 - 09:49h

thiagosabo escreveu:

Salve galera do VOL!!

Estou algumas semanas caçando uma maneira de organizar um log de acompanhamento apenas com números. O problema é que com o comando sort ele organiza TUDO! hehe, fii da mãe di danadu di bom! Porém gostaria de organizar este log redirecionando (>>) apenas os números organizados para outro(s) arquivo(s).
Ex... Possuo o log:
== RESSUPRIMENTO INTEGRADO - CD: 7006 - ESTAB: 224 - NRO_SEQ: 3749709 - SEQ_INT
WM
== RESSUPRIMENTO INTEGRADO - CD: 7006 - ESTAB: 226 - NRO_SEQ: 3749710 - SEQ_INT

Os números 224 e 226 são (inicialmente) os que me interessam.
Problemas...O sort combinando com o Cut, possui a opção de organizar por colunas, mas percebam que entre a linha 1 e a linha 3 existe as letras "WM" que faz o Cut perder referência nas milhaaares de linhas abaixo, enfim quem projeta o processamento de informações nunca pensa em quem um dia poderá filtrá-las para alguma verificação =(

Espero que minha dúvida contribua de alguma maneira para o aprendizado de alguém! Obrigado à todos!!


Bom dia.
Para "pegar" somente os números que interessam, faça:
awk '$1 ~ /==/ {print $9}' log 

224
226


Att.:
marcelo oliver



4. Re: Organizar arquivo apenas com números [RESOLVIDO]

Thiago do Nascimento Sabo
thiagosabo

(usa Ubuntu)

Enviado em 10/01/2017 - 23:32h

Obrigado pela atenção msoliver, seu script estaria perfeito caso eu possuísse um "range" de números estabelecidos, assim colocaria a condição de busca que desejasse no /==/. Mas a vida de peão não é fácil, são centenas de linhas que contém estes números (que significam lojas).
Estou me referindo cerca de iniciais 195 linhas, ou seja, o log de exemplo que passei vezes 98.

Seria possível na condição "/==/ "inserir uma quantidade de 195 números (lojas) de busca??

Obrigado!


5. Re: Organizar arquivo apenas com números [RESOLVIDO]

Thiago do Nascimento Sabo
thiagosabo

(usa Ubuntu)

Enviado em 10/01/2017 - 23:38h

Boa Noite ctw6av!!

Obrigado pela ajuda, mas os números (lojas) de busca 224 e 226 são apenas alguns dos mais de 200 números (lojas) que precisaria buscar.

Dentro da condição do grep eu precisaria inserir todos os números (lojas) que eu necessitaria filtrar?

Obrigado!


6. Re: Organizar arquivo apenas com números [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 10/01/2017 - 23:51h

thiagosabo escreveu:

Obrigado pela atenção msoliver, seu script estaria perfeito caso eu possuísse um "range" de números estabelecidos, assim colocaria a condição de busca que desejasse no /==/. Mas a vida de peão não é fácil, são centenas de linhas que contém estes números (que significam lojas).
Estou me referindo cerca de iniciais 195 linhas, ou seja, o log de exemplo que passei vezes 98.

Seria possível na condição "/==/ "inserir uma quantidade de 195 números (lojas) de busca??

Obrigado!


Boa noite Thiago.
Vamos ver se eu entendi . . . .
Voce tem um log, e deseja "pegar" o "campo 9" (usando espaço como separador), das linhas que iniciam com "==", e posteriormente coloca-los em ordem, é isso?

Marcelo Oliver




7. Re: Organizar arquivo apenas com números

Thiago do Nascimento Sabo
thiagosabo

(usa Ubuntu)

Enviado em 11/01/2017 - 01:05h

Quase isso Marcelo, colocá-los em ordem é uma tarefa fácil, o problema é a coluna mesmo, visto que os números de busca (ou lojas) encontram-se em campos diferentes. Ora estão no campo 9, ora estão no campo 8. Eu substituí o cut pelo awk e juntei com o sort, os resultados foram muito bons ex.

$ cat teste_sort.txt | awk '{print $9}' | sort | uniq

Porém no decorrer das centenas de linhas algumas lojas ficam faltando, caso eu insira algum campo (S8, S9 e etc) o resultado não trará apenas as lojas.


8. Re: Organizar arquivo apenas com números

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 11/01/2017 - 10:19h

Só os números na coluna 8 e 9:
awk '{if(match($8 $9, /[0-9]{1,}/, res)) print res[0]}' teste.log 

A linha completa:
awk '{if(match($8 $9, /[0-9]{1,}/, res)) print $0}' teste.log 



______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro: http://biebian.sourceforge.net/


9. Re: Organizar arquivo apenas com números [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/01/2017 - 14:16h

thiagosabo escreveu:

Quase isso Marcelo, colocá-los em ordem é uma tarefa fácil, o problema é a coluna mesmo, visto que os números de busca (ou lojas) encontram-se em campos diferentes. Ora estão no campo 9, ora estão no campo 8. Eu substituí o cut pelo awk e juntei com o sort, os resultados foram muito bons ex.

$ cat teste_sort.txt | awk '{print $9}' | sort | uniq

Porém no decorrer das centenas de linhas algumas lojas ficam faltando, caso eu insira algum campo (S8, S9 e etc) o resultado não trará apenas as lojas.


Thiago, boa tarde.
É possivel enviar o arquivo para que eu analise?
Melhor via email . . .

marcelo oliver


10. Re: Organizar arquivo apenas com números [RESOLVIDO]

Thiago do Nascimento Sabo
thiagosabo

(usa Ubuntu)

Enviado em 12/01/2017 - 02:04h

Caros,

Desde já agradeço pela atenção e esforço na pesquisa. Consegui a extração que desejava!!

Após todas as dicas percebi que o log trazia informações de várias datas retroativas, o que estava embaralhando demais a busca com as ferramentas de filtragem e linguagem como o awk.

Solução...

O log é acompanhado com o tail, então a solução foi redirecionar para um arquivo txt do dia. Com o log mais enxugado, foi possível abusar das ferramentas em vários parâmetros.

$ awk '{if(match("$8 $9"), /[0-9]{1,}/, res)) print $0}' teste_ressup.txt

e mais simples mas também muito eficaz:

$ cat teste_ressup.txt | awk '{print $9}'|sort -n|uniq

Muito obrigado pessoal!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts