ramiro99
(usa Linux Mint)
Enviado em 09/06/2013 - 00:45h
Fala galera,
estou fazendo um trabalho da facul e preciso de uma ajudinha de vcs...tenho de fazer um script em shell que faz a seguinte proeza: dado um conjunto de arquivos HTML, parsear todos os documentos (retirar tags, acentos, letras maiúsculas, etc..) e apresentar para o usuário todas as palavras que aparecem no documento, seguida do número de ocorrências da mesma e qual documento se encontra o termo.
Dado o problema, pensei bastante a respeito e comecei o desenvolvimento, e cheguei a conclusão que usando tabela hash seria uma solução mais cabível. O problema é que preciso ler cada arquivo separadamente e armazenar em uma tabela hash. Estou utilizando (ou tentando, rs) fazer uma regex pra retirar as tags HTML. Segue abaixo o código que comecei...pessoal, qualquer ajuda é bem-vinda, não quero resposta pronta, quero uma orientação de quem já tem um conhecimento a mais...
DIRETORIO="/home/ramiro/praticaORI/arquivos_html/*"
# Declaração do Hash
declare -A hash
# Adiciona os tokens do documento no Hash - 1º Param: hash / 2º Param: arquivo
addItemHash () {
cat $2 | sed 's/\(<.*>\|<.*[ ]>\)//g'
while read LINHA
do
for PALAVRA in $LINHA
do
let $1[$PALAVRA]++
done
done < $2
}
# Mostra as palavras e a quantidade de vezes em que elas apareceram
mostraItemHash () {
for chave in ${!hash[@]}
do
tput bold; echo -n "$chave"; tput sgr0
echo -n " apareceu "
tput bold; echo -n ${hash[$chave]} ; tput sgr0
echo " vez(es)."
done
}
addItemHash "hash" "$DIRETORIO"
mostraItemHash