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

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

Re: [shell-script] Como contar linhas não repetidas num arquivo de log?


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] Como contar linhas não repetidas num arquivo de log?
Date: Mon, 10 Mar 2008 08:42:12 -0300

Se vc quer pegar o ultimo campo vc pode usar 2 rev's

rev lista.txt | cut -d ' ' -f1 | rev | ...

o rev imprime a linha ao contrario, assim o ultimo campo passa a ser o primeiro.

2008/3/10 Thiago Andrighetti <address@hidden>:
>
>
> sera que com tr não adianta com os espaços.....seguindo o exemplo
> anterior...
>
>  cat lista.txt | tr -s " " | cut -d ' ' -f 5 | sort --unique | wc -l
>  Thiago Andrighetti de Pádua
>
>  ----- Mensagem original ----
>  De: Alain M. <address@hidden>
>  Para: address@hidden
>  Enviadas: Sábado, 8 de Março de 2008 13:09:35
>  Assunto: Re: [shell-script] Como contar linhas não repetidas num arquivo de
> log?
>
>
>
>  Oi Adriano,
>
>  Eu não vou te dar o código, mas gostaria de explicar uma coisa:
>
>  O grande segredo em shell script, é fazer as coisas por partes:
>
>  1) Elimine o que não interessa: use o cut
>  2) Elimine os repetidos: use o sort com opção unique
>  3) Agora é só contar o que sobrou: use o wc
>
>  Vai fazendo um comando provez, no final cabe tudo em uma linha:
>
>  cat lista.txt | cut -d ' ' -f 5 | sort --unique | wc -l
>
>  OBS: não ficou muito elegante o comando cut, o motivo é que tem 2
>  espaços seguidos. Talvez alguém possa dar uma dica de como usar
>  multiplos espaços como delimitador. ..
>
>  Alain
>
>  bossonaroesao06 escreveu:
>  > Bom dia...
>  >
>  > Tenho um arquivo de log no seguinte formato:
>  >
>  > 1ªcoluna: DATA/HORA (nesse formato maluco aí)
>  > 2ªcoluna: IP
>  > 3ªcoluna: USER
>  >
>  > Exemplo:
>  > #=========== ========= ========= ========= #
>  > 1204883891.466 192.168.10.76 andre
>  > 1204883891.467 192.168.10.71 andre
>  > 1204883891.468 192.168.10.26 marcos
>  > 1204883891.469 192.168.10.11 renato
>  > 1204883891.469 192.168.10.76 andre
>  > 1204883891.470 192.168.10.71 andre
>  > 1204884017.599 192.168.10.26 adriano
>  > 1204884233.373 192.168.10.11 renato
>  > #=========== ========= ========= ========= #
>  >
>  > Eu gostaria de saber o número de usuários nesse log sem repetir.
>  >
>  > No exemplo acima tenho os usuários na terceira coluna mas eu não
>  > posso simplesmente contar as linhas pois eles se repetem.
>  >
>  > Eu gostaria de fazer um script para contar esses usuários no arquivo
>  > de log de forma que a resposta para o exemplo acima fosse 04 (
>  > andre, marcos, renato, adriano) sem repetir as ocorrências de cada
>  > um deles.
>  >
>  > Alguem poderia me ajudar?
>  > Obrigado pela atenção
>  > Adriano
>  >
>  >
>  >
>  > ------------ --------- --------- --------- --------- --------- -
>  > Esta lista não admite a abordagem de outras liguagens de programação,
> como perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
>  > ------------ --------- --------- --------- --------- --------- -
>  > Sair da lista: shell-script- unsubscribe@ yahoogrupos. com.br
>  > ------------ --------- --------- --------- --------- --------- -
>
>  > Esta lista é moderada de acordo com o previsto em http://www.listas-
> discussao. cjb.net
>  > ------------ --------- --------- --------- --------- --------- -
>  > Servidor Newsgroup da lista: news.gmane.org
>  > Grupo: gmane.org.user- groups.programmi ng.shell. brazil
>  >
>  >
>  > Links do Yahoo! Grupos
>  >
>  >
>  >
>  >
>
>  <!--
>
>  #ygrp-mkp{
>  border:1px solid #d8d8d8;font-family:Arial;margin:14px 0px;padding:0px
> 14px;}
>  #ygrp-mkp hr{
>  border:1px solid #d8d8d8;}
>  #ygrp-mkp #hd{
>  color:#628c2a;font-size:85%;font-weight:bold;line-height:122%;margin:10px
> 0px;}
>  #ygrp-mkp #ads{
>  margin-bottom:10px;}
>  #ygrp-mkp .ad{
>  padding:0 0;}
>  #ygrp-mkp .ad a{
>  color:#0000ff;text-decoration:none;}
>  -->
>
>  <!--
>
>  #ygrp-sponsor #ygrp-lc{
>  font-family:Arial;}
>  #ygrp-sponsor #ygrp-lc #hd{
>  margin:10px 0px;font-weight:bold;font-size:78%;line-height:122%;}
>  #ygrp-sponsor #ygrp-lc .ad{
>  margin-bottom:10px;padding:0 0;}
>  -->
>
>  <!--
>
>  #ygrp-mlmsg {font-size:13px;font-family:arial, helvetica, clean,
> sans-serif;}
>  #ygrp-mlmsg table {font-size:inherit;font:100%;}
>  #ygrp-mlmsg select, input, textarea {font:99% arial, helvetica, clean,
> sans-serif;}
>  #ygrp-mlmsg pre, code {font:115% monospace;}
>  #ygrp-mlmsg * {line-height:1.22em;}
>  #ygrp-text{
>  font-family:Georgia;
>  }
>  #ygrp-text p{
>  margin:0 0 1em 0;}
>  #ygrp-tpmsgs{
>  font-family:Arial;
>  clear:both;}
>  #ygrp-vitnav{
>  padding-top:10px;font-family:Verdana;font-size:77%;margin:0;}
>  #ygrp-vitnav a{
>  padding:0 1px;}
>  #ygrp-actbar{
>  clear:both;margin:25px 0;white-space:nowrap;color:#666;text-align:right;}
>  #ygrp-actbar .left{
>  float:left;white-space:nowrap;}
>  .bld{font-weight:bold;}
>  #ygrp-grft{
>  font-family:Verdana;font-size:77%;padding:15px 0;}
>  #ygrp-ft{
>  font-family:verdana;font-size:77%;border-top:1px solid #666;
>  padding:5px 0;
>  }
>  #ygrp-mlmsg #logo{
>  padding-bottom:10px;}
>
>  #ygrp-vital{
>  background-color:#e0ecee;margin-bottom:20px;padding:2px 0 8px 8px;}
>  #ygrp-vital #vithd{
>
> font-size:77%;font-family:Verdana;font-weight:bold;color:#333;text-transform:uppercase;}
>  #ygrp-vital ul{
>  padding:0;margin:2px 0;}
>  #ygrp-vital ul li{
>  list-style-type:none;clear:both;border:1px solid #e0ecee;
>  }
>  #ygrp-vital ul li .ct{
>
> font-weight:bold;color:#ff7900;float:right;width:2em;text-align:right;padding-right:.5em;}
>  #ygrp-vital ul li .cat{
>  font-weight:bold;}
>  #ygrp-vital a{
>  text-decoration:none;}
>
>  #ygrp-vital a:hover{
>  text-decoration:underline;}
>
>  #ygrp-sponsor #hd{
>  color:#999;font-size:77%;}
>  #ygrp-sponsor #ov{
>  padding:6px 13px;background-color:#e0ecee;margin-bottom:20px;}
>  #ygrp-sponsor #ov ul{
>  padding:0 0 0 8px;margin:0;}
>  #ygrp-sponsor #ov li{
>  list-style-type:square;padding:6px 0;font-size:77%;}
>  #ygrp-sponsor #ov li a{
>  text-decoration:none;font-size:130%;}
>  #ygrp-sponsor #nc{
>  background-color:#eee;margin-bottom:20px;padding:0 8px;}
>  #ygrp-sponsor .ad{
>  padding:8px 0;}
>  #ygrp-sponsor .ad #hd1{
>
> font-family:Arial;font-weight:bold;color:#628c2a;font-size:100%;line-height:122%;}
>  #ygrp-sponsor .ad a{
>  text-decoration:none;}
>  #ygrp-sponsor .ad a:hover{
>  text-decoration:underline;}
>  #ygrp-sponsor .ad p{
>  margin:0;}
>  o{font-size:0;}
>  .MsoNormal{
>  margin:0 0 0 0;}
>  #ygrp-text tt{
>  font-size:120%;}
>  blockquote{margin:0 0 0 4px;}
>  .replbq{margin:4;}
>  -->
>
>  Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
> armazenamento!
>  http://br.mail.yahoo.com/
>
>
>  [As partes desta mensagem que não continham texto foram removidas]
>
>  



-- 
Tiago B Peczenyj
Linux User #405772

http://peczenyj.blogspot.com/
"what does not kill us makes us stronger"


reply via email to

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