The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
a forma de ordenação, e contar dados exclusivos de uma só vez? amatuer_lee_3 Programação Shell Script e 16 04-14-2009 11:22
Origem e Destino count controlo ksmbabu Programação Shell Script e 2 04-03-2008 04:57
grep executando total / total final em vários ficheiros Mrad UNIX para Dummies Perguntas & Respostas 5 05-08-2007 02:03
Byte Taxa para / a partir de uma origem / destino cubs0729 UNIX & avançada para usuários experientes 1 08-08-2005 05:55
Script para a contagem do número único usuário em loged elchalateco Programação Shell Script e 1 09-30-2002 12:32

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 07-09-2008
new_buddy new_buddy is offline
Usuário
  
 

Join Date: May 2008
Lugares: 11
A contagem total destino único para a fonte

Oi, preciso de ajuda para contar como único destino para a fonte ip. O arquivo está contém 4 número de domínios. Exemplo do arquivo está aqui
Código HTML:
src ip           dest ip     #of flows   total bytes
192.168.6.0  88.0.33.2      12           128
192.168.6.0  88.0.33.2      1             168
192.168.6.0  111.22.35.0   2             364
192.168.5.0  88.0.33.2      1             125
.....
Eu quero contar o destino único, o total de fluxos e os bytes totais por sorce ip. A saída que eu quero que aconteça é este
Código HTML:
192.168.6.0   2    15   660
192.168.5.0   1    1    125
.....
Alguém pode me ajudar?
  #2 (permalink)  
Old 07-09-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.879
Sua produção parece worng, dada a sua amostra de entrada.
De qualquer forma, eu suponho que você precisa de algo como isto:
(uso nawk / ou usr/xpg4/bin/awk no Solaris)

Código:
awk 'END {
  for (k in c) {
    split(k, t, SUBSEP)
    print t[1], c[k], f[k], b[k]
  }
}  
NR > 1 { 
  c[$1,$2] ++ 
  f[$1,$2] += $3 
  b[$1,$2] += $4 
  }' file
  #3 (permalink)  
Old 07-09-2008
new_buddy new_buddy is offline
Usuário
  
 

Join Date: May 2008
Lugares: 11
Não sei o que está errado com a minha saída. É o resultado que eu quero.

Citação:

src ip dest ip # dos fluxos totais bytes
192.168.6.0 88.0.33.2 12 128
192.168.6.0 88.0.33.2 1 168
192.168.6.0 111.22.35.0 2 364
192.168.5.0 88.0.33.2 1 125
..... Eu quero contar o destino único, o total de fluxos e os bytes totais por sorce ip. A saída que eu quero que aconteça é este

192.168.6.0 2 15 660
192.168.5.0 1 1 125
.....
A partir daqui, tem 2 fonte 192.168.6.0 destino único (88.0.33.22 e 111.22.35.0). e total do fluxo é de 12 (12 +1 +2) e os bytes totais 660 (128 168 364). Assim. a partir do seu código, estou a tentar encaixar com o meu código. Estou usando o awk-f count.awk. Isto são as linhas do arquivo count.awk.
Código:
            {src[$1,$2]++
	total[$1,$2]=total[$1,$2]+$3 
	bytes[$1,$2]=bytes[$1,$2]+$4 
	}
 	END{
	for (i in src) print src " " src[i] "\t" total[i] "\t"  bytes[i] 
	}
No entanto, eu tenho um erro dizer-se que o src matriz é uma referência ilegal. Por favor, me ajudem. Necessidade de resolver este problema
  #4 (permalink)  
Old 07-10-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.879
Sim,
sua exigência é mais do que evidente,
Pedimos desculpas pelo ruído.
Utilize este código:

Código:
awk 'END {
  for (k in u) {
    printf "%s\t%s\t%s\t%s\n", 
	  k, u[k], f[k], b[k]
  }
}  
NR > 1 { 
  _[$1,$2]++ ? u[$1] : ++u[$1] 
  f[$1] += $3 
  b[$1] += $4 
  }' file
  #5 (permalink)  
Old 07-10-2008
new_buddy new_buddy is offline
Usuário
  
 

Join Date: May 2008
Lugares: 11
Thumbs up

Muito obrigado pela sua ajuda. Estou agora conseguem produzir o resultado que eu quero. No entanto, quando eu manualmente verificar, não há linha de produção é calcular mal. Quando tento remover a NR> 1, então ele funciona perfeitamente.

Muito obrigado pela ajuda.
  #6 (permalink)  
Old 07-10-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
viciado
  
 

Join Date: Jan 2007
Localização: Варна, България / Milano, Italia
Mensagens: 2.879
NR> 1 exclui a primeira linha:

Código:
src ip           dest ip     #of flows   total bytes
Talvez você já tenha removido-lo?
Closed Thread

Marcadores

Tags
solaris

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 03:51.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0