[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] contar palavras
From: |
Andreyev Dias de Melo |
Subject: |
Re: [shell-script] contar palavras |
Date: |
Mon, 06 Sep 2004 12:52:04 -0300 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040113 MultiZilla/1.6.3.1c |
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
- contar palavras, Joao Paulo Muller da Silva, 2004/09/06
- Re: [shell-script] contar palavras,
Andreyev Dias de Melo <=