|
|
|
|
site google
|
|||||||
| Fóruns | Registar | Blog | Man Pages | Fórum Regimento | Ligações | Álbuns | FAQ | Usuários | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| 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. |
![]() |
|
|
Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|||
|
Awk - Comparar e incremento campos variáveis
Oi,
O meu primeiro post para este grupo ... Tenho uma necessidade de a analisar um arquivo fonte que é uma captação de um analisador de rede. Tenho dois campos que devem ser verificados: - Campo 7 representa o pacote de comprimento (um inteiro), e Campo 4 representa um endereço de rede (por exemplo, 192.168.25.3) - A primeira verificação é encontrar 2 linhas consecutivas que têm o mesmo inteiro no campo 7 ou seja, o mesmo comprimento. Arquivo original não pode ter sempre estas linhas consecutivas embora, mas estou ok para ignorar essas linhas se é muito difícil incluir aquelas. - Então, uma vez que temos essas duas linhas, verificar o texto no campo 4 para estas linhas e inidicate o valor dentro do texto que é "primeira" e de incremento de uma variável. What I'm depois é compreender a forma como muitas vezes Um endereço é comparado ao primeiro endereço B. Minha espera saída a partir da amostra abaixo seria: "239.25.30.25 é a primeira vez" e "239.25.30.26 é o primeiro duas vezes. Mesmo um produto como "239.25.30.25 - 1, 239.25.30.26 - 2" seria ótimo. Exemplo fonte: No. Time Source Destination Protocol Info Comprimento 1 20:44:19.525910000 192.168.30.25 239.25.30.25 porta UDP Fonte: DNP Destination port: 20000 94 2 20:44:19.525932000 192.168.30.26 239.25.30.26 porta UDP Fonte: DNP Destination port: 20000 94 3 20:44:19.525989000 192.168.30.26 239.25.30.26 porta UDP Fonte: DNP Destination port: 20000 114 4 20:44:19.526037000 192.168.30.25 239.25.30.25 porta UDP Fonte: DNP Destination port: 20000 114 13 20:44:19.693262000 192.168.30.26 239.25.30.26 porta UDP Fonte: DNP Destination port: 20000 193 14 20:44:19.693295000 192.168.30.25 239.25.30.25 porta UDP Fonte: DNP Destination port: 20000 193 Creio Awk deve ser capaz de tomar a isto, mas a minha awk habilidades não são bons o suficiente para chegar a alguma coisa decente. Espero que alguém pode ser capaz de me aponte na direcção certa. Obrigado, Mario |
| Links Patrocinados | ||
|
|
|
|||
|
Código:
awk '
$1 ~ /^[0-9]/ {
if (!last) { last=$12; ip=$4 }
else
{
if (last==$12) ipc[ip]++
last=0
}
}
END { for (ip in ipc) print ip, ipc[ip] }
' inputfile
produz o seguinte resultado a partir do seu arquivo exemplo: 239.25.30.25 1 |
|
|||
|
vidyadhar85,
Para responder à sua pergunta, tenho um arquivo texto contendo os dados de uma rede de captação. Os dados são duplicados (de propósito) e é enviado para dois destinos (endereços multicast). Às vezes os dados para um destino é recebida em primeiro lugar, outras vezes os dados para o outro é o primeiro destino. Estou tentando trabalhar para fora o que é normalmente primeiro destino, dependendo da amostra me capturar. Acabei de ver que, dependendo de qual awk string eu correr a partir das respostas acima, fico com várias saídas / resultados a partir das respostas recebidas, pelo que, provavelmente, ainda seja necessário verificar o que me dá a resposta mais correta para uma determinada amostra. Penso cambridge do script funciona melhor para mim até agora. Obrigado novamente. Mario |
|
|||
|
Note que o meu script só trabalha com linhas consecutivas. Começa mais circinal se pretende manipular outros casos, como você precisará decidir quantas linhas deve ser permitido entre cada um para que seja uma amostra válida.
|
| Links Patrocinados |
|
|
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| comparar campos em um arquivo com registros duplicados | rleal | Programação Shell Script e | 1 | 01-29-2009 02:55 |
| Como ler e comparar os vários campos de uma coluna, ao mesmo tempo | ahjiefreak | Programação Shell Script e | 1 | 06-19-2008 12:08 |
| Comparar 2 ficheiros através de múltiplos domínios | newinawk | Programação Shell Script e | 4 | 06-12-2008 05:34 |
| Compare as duas matrizes em sh ou comparar dois campos | rijeshpp | Programação Shell Script e | 0 | 10-31-2007 02:47 |
| Passando domínios específicos de arquivos como variáveis | keladar | UNIX para Dummies Perguntas & Respostas | 4 | 04-13-2005 07:00 |