Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
Entre para seguir isso  
eniomarques

Preciso de ajuda em UNIX :(

Recommended Posts

Fala pessoal beleza??

Bom, to precisando de uma ajudinha de quem entenda de Unix.

é o seguinte..

eu preciso do numero total de transações de cada 'chamada' do sub-método, que estão listados no 5º campo (campos separados por '|')

ou seja...preciso descobrir quantos 'nomes' são diferentes e quantas vezez cada um aparece...

já tentei usando o comando

cut -f5 -d'|' filename | sort;

mas isso apenas pegou o 5 campo e listou os nomes diferentes..

algumas pessoas me disseram para usar o awk, mas não tive sucesso.

bom, ficaria muito grato se alguem pudesse me ajudar, to quebrando a cabeça pra conseguir =/

obrigado

Enio

EDIT :

Bom, fiquei um tempo estudando o awk e consegui imprimir cada nome diferente apenas 1 vez com o comando :

awk -F'|' '{print $5}' file1 | sort | uniq;

agora faltando "apenas" o principal..contar quantas vezez cada nome aparece..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

Pode ser um pouco mais claro na explicação do problema? Pelo que entendi, você tem um arquivo com vários campos separados por "|" e quer o número de diferenças e o número de vezes que se repete cada diferença.

Se for isso, não precisa utilizar awk, veja:

- Para imprimir o número de ocorrências repetidas:

$ cut -d"|" -f5 < filename | sort | uniq -d | wc -l

- Para imprimir quatas vezes cada repetição acontece:

$ cut -d"|" -f5 < filename | sort | uniq -d -c

Se quiser um script que permita a entreda do nome do arquivo por parâmetro, pode-se fazer:

#!/bin/bash

echo " "
echo "Número de ocorrências repetidas: `cut -d"|" -f5 < $1 | sort | uniq -d | wc -l`."
echo " "
echo "Número de repetições de cada ocorrência repetida:"
cut -d"|" -f5 < $1 | sort | uniq -d -c
echo " "

Salve como script.sh, dê permissão de execução e você poderá usá-lo assim:

$ ./script <NOMEDOARQUIVO>

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • opa, um cara no unix.com postou de um jeito mais fácil usando o awk:

    awk -F'|' '{arr[$5]++} END {for(i in arr) printf("[%s] appeared %d times\n", i, arr)}' filename;

    mas de qualker modo, muito obrigado :)

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    De nada. =)

    Mas você acha essa linha de awk mais fácil que essa?

    $ cut -d"|" -f5 < filename | sort | uniq -d | wc -l

    Eu prefiro sem awk. :D

    Mas beleza. Abração! o/

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×