[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] contar ocorrencias em arquivo.
From: |
Tiago Barcellos Peczenyj |
Subject: |
Re: [shell-script] contar ocorrencias em arquivo. |
Date: |
Fri, 21 Sep 2007 10:08:50 -0300 |
Tem pelo menos 3 formas:
1- usando uniq -c
$ uniq -c arq.txt # se ja estiver ordenado!
4 linux
2 shell
$ sort arq.txt | uniq -c # ordenando...
4 linux
2 shell
2- pode usar o grep -c para uma palavra em específico
$ grep -c linux arq.txt
4
3- podes usar awk + arrays
$awk '{words[$0]++}
END{for(i in words) print i,"-",words[i] }' arq.txt
linux - 4
shell - 2
Acho que a sort + uniq é a melhor
opção, basta formatar a saída do jeito que vc quiser, usando sed ou awk
[]´s Tiago
On 9/20/07, gleissonmb <address@hidden> wrote:
>
>
> Boa tarde gente,
>
> Alguma dica de como contar quantas ocorrencias de uma string existe em
> um arquivo linha por linha.
>
> Ex:
>
> conteudo de arq.txt
> linux
> linux
> linux
> linux
> shell
> shell
>
> O resultado ideal do comando seria:
> linux - 4
> shell - 2
>
> Eu tentei este comando:
> # for i in `cat arq.txt` ; do echo -ne "$i"\ ; echo -ne "-"\ ; grep
> "^$i$" arq.txt | wc -l ; echo ; done
>
> Só que aparece repetido, assim:
> linux - 4
> linux - 4
> linux - 4
> linux - 4
> shell - 2
> shell - 2
>
> !!!
>
>
>
--
Tiago B Peczenyj
Linux User #405772
http://peczenyj.blogspot.com/
[As partes desta mensagem que não continham texto foram removidas]