Responder 
 
Avaliação do Tópico:
  • 2 Votos - 3 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Script para filtrar horário de atividade em controladoras de rádio ip
19/10/2012, 13:47
Resposta: #1
Script para filtrar horário de atividade em controladoras de rádio ip
Olá pessoal!
Tenho 11 controladoras para cada um dos canais de rádio ip aqui no trabalho, estou necessitando de um script que filtre pelo horário e pelo número das controladoras, que vão de 01 até 11, para criar um arquivo texto que informe por exemplo a cada 10 minutos quantas controladoras diferentes estavam ativas, o número das controladoras são os 2 dígitos seguintes ao 001 nessa coluna que termina com CNS; são gerados 11 arquivos com muitas linhas todas desse mesmo jeito, eu juntei os 11 arquivos num só.

02C20120323 23:55 00006 00101GCNS 003-0024 003-7101 011, Q=N Qt=0
02C20120323 23:56 00006 00107GCNS 002-1445 002-7301 011, Q=N Qt=0
02C20120323 23:56 00010 00108GCNS 001-1403 001-7301 011, Q=N Qt=0
02C20120323 23:56 00009 00101GCNS 001-1403 001-7301 011, Q=N Qt=0
02C20120323 23:56 00036 00111GCNS 003-5643 003-7902 011, Q=N Qt=0
02C20120323 23:56 00022 00104GCNS 001-0712 001-7201 011, Q=N Qt=0
02C20120323 23:57 00035 00108GCNS 003-5628 003-7901 011, Q=N Qt=0
02C20120323 23:57 00031 00109GCNS 002-1445 002-7301 011, Q=N Qt=0
02C20120323 23:57 00006 00101GCNS 001-4207 001-7701 011, Q=N Qt=0
02C20120323 23:56 00071 00106GCNS 003-5620 003-7902 011, Q=N Qt=0

Agradeço imensamente pela ajuda.
Peter.[/size]
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
22/10/2012, 09:32
Resposta: #2
RE: Script para filtrar horário de atividade em controladoras de rádio ip
Solução básica usando SQLite:

Código:
#!/bin/bash
arquivo=$1
db_name='controladoras.sqlite'
sqlite3 $db_name 'drop table if exists eventos; create table eventos( horas datetime, id_controladora integer );'
while read -r horas evento
do
  id_controladora=${evento:3:2}
  sqlite3 $db_name "insert into eventos (horas, id_controladora) values ('$horas', $id_controladora);"
done < <(cut --delim=' ' --fields='2,4' $arquivo)
numero=$(sqlite3 $db_name 'select count(*) from (select distinct id_controladora from eventos);')
echo -e "\nNúmero de controladoras distintas: $numero\n"

[[*]]'s
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
23/10/2012, 22:52
Resposta: #3
RE: Script para filtrar horário de atividade em controladoras de rádio ip
Beleza..instalei o sqlite aqui, mas não compreendi muito bem se devo criar um arquivo com este conteúdo que você passou ou vou digitando diretamente no console do sqlite; e como associar este executável ao arquivo que tenho que filtrar?
Desculpe pelas perguntas, mas não conheço muito de banco de dados e pelo que vi tenho que criar um.
Obrigado pela atenção.. valeu
Alegre
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
24/10/2012, 09:37
Resposta: #4
RE: Script para filtrar horário de atividade em controladoras de rádio ip
O código é um script Bash com uma das soluções básicas possíveis que é extensível e simples no meu ponto de vista. Salve o código num arquivo e dê permissão de execução. A partir dele, poderá desenvolver o código que "de facto" te interessa.
Para executar, basta fornecer o nome do arquivo de dados como argumento único:

teu_prompt> nome_script arquivo_dados

O db SQLite criado/regenerado na execução do script, visa faciltar as consultas que a priori são únicas, mas vislumbro que mais informações podem ser extraídas. Poderá consultar na linha de comando, no console do SQLite ou até mesmo via aplicativos/scripts como este.
Recomendação: use o excelente complemento do Firefox "SQLite Manager".

Por enquanto, experimente o scritp e tire tuas conclusões.

[[*]]'s
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
31/10/2012, 20:26
Resposta: #5
RE: Script para filtrar horário de atividade em controladoras de rádio ip
Ae galera valeu pela ajuda...cheguei no resultado que queria, depois de alguns filtros...utilizando como base ´awk´ e também o ´sort´ e ´uniq´ , após ler bastante, mas prefiri deixar o uso de banco de dados de fora..preciso entender um pouco melhor disso..mas aí foi o resultado:

awk '{ print $1,$2,$4 }' zetron.txt | cut -c 4-11,13-17,22-23 --output-delimiter=";" | sort | uniq -u | awk -F ";" '{ print $1,$2 }' | sort | uniq -c zetron.final.txt

fui fazendo aos poucos, e depois concatenei tudo num arquivo só, agora até parece simples...com o resultado posso criar os gráficos que precisava sobre a saturação do sistema das controladoras de gravação dos rádio ip.
Até mais...
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
Responder 


Ir ao Fórum:


Usuários visualizando este tópico: 1 Visitantes

Entre em Contato | Fórum Debian | Voltar ao Topo | Voltar ao Conteúdo | Modo Leve (Arquivo) | Feeds RSS