[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Res: Res: [shell-script] Como contar linhas não repetidas num arquivo de
From: |
Thiago Andrighetti |
Subject: |
Res: Res: [shell-script] Como contar linhas não repetidas num arquivo de log? |
Date: |
Mon, 10 Mar 2008 04:47:23 -0700 (PDT) |
Acho que uma abordagem com menos comandos e interessante seria essa a seguir
cat lista.txt |cut -d ' ' -f3|uniq -u|wc -l
utilizando o uniq para omitir linhas repetidas
Thiago Andrighetti de Pádua
----- Mensagem original ----
De: Thiago Andrighetti <address@hidden>
Para: address@hidden
Enviadas: Segunda-feira, 10 de Março de 2008 8:34:33
Assunto: Res: [shell-script] Como contar linhas não repetidas num arquivo de
log?
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. <alainm@pobox. com>
Para: shell-script@ yahoogrupos. com.br
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]
<!--
#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]
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Res: Res: [shell-script] Como contar linhas não repetidas num arquivo de log?,
Thiago Andrighetti <=