[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] contar palavras
From: |
wellingtons_imares |
Subject: |
Re: [shell-script] contar palavras |
Date: |
Mon, 6 Sep 2004 13:30:58 -0300 |
Andre
kra se todos os arquivos tiverem no mesmo diretorio tente assim:
wc -l *
___________________________________________________
Wellington Santos Oliveira
Analise de Suporte
__________________________________________________
|---------+--------------------------->
| | Andreyev Dias de|
| | Melo |
| | <andreyev@cpqd.c|
| | om.br> |
| | |
| | 06/09/2004 12:52|
| | Favor responder |
| | a shell-script |
| | |
|---------+--------------------------->
>------------------------------------------------------------------------------------------------------------------------------|
|
|
| Para: address@hidden
|
| cc:
|
| Assunto: Re: [shell-script] contar palavras
|
>------------------------------------------------------------------------------------------------------------------------------|
Joao Paulo Muller da Silva wrote:
> Olá galera..
>
> Eu preciso contar o numero de ocorrências de palavras em um arquivo
texto.
>
> Por exemplo:
>
> eu 3
> tu 4
> nos 6
>
> Fiz assim grep "palavra" arquivo.txt | wc -l, porem dessa maneira eu
tenho
> que colocar palavra por palavra, gostaria de saber como eu faco para em
vez de
> colocar a palavra colocar uma variavel que receba esta palavra do arquivo
e me
> retorne o numero de ocorrencias.
João Paulo,
O Rubens Queiroz do Dicas-l e da UNICAMP já fez isto!
#!/bin/bash
for file in *.txt
do
echo "==============================================================" >> $
file-report
echo $file > $file-report
echo "==============================================================" >> $
file-report
awk -f /home/queiroz/bin/wordcount.awk $file > $file-report
done
--------------------
A seguir, o arquivo wordcount.awk:
--------------------
{
$0 = tolower($0)
gsub(/``/, " ", $0)
gsub(/''/, " ", $0)
gsub(/[^a-z' \t]/, " ", $0)
for (i = 1; i <= NF; i++)
freq[$i]++
total += NF
}
>
END {
sort = "sort +1 -nr"
for (word in freq)
printf "%-10s\t%-10d\t%-2.3f\n",word,freq[word],(freq[word] *
100)/total | sort
print "----------------------------"
print "Total de Palavras = " total
print "----------------------------"
}
--------------------
Veja mais em http://www.dicas-l.unicamp.br/dicas-l/20011102.shtml.
BTW, vc pode fazer isso sem o AWK, como ele diz em
http://www.dicas-l.unicamp.br/dicas-l/19970311.shtml:
$ cat book*|deroff -w|dd conv=lcase|sort|uniq -c|sort -nr|more
As explicações são o 'dever de casa', mas vc pode tê-las nas URL citadas...
[]s
Andreyev
---------------------------------------------------------------------
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: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [shell-script] contar palavras,
wellingtons_imares <=