msoliver
(usa Debian)
Enviado em 15/04/2016 - 21:06h
laisrmlc escreveu:
Pessoal,
Todas as duas opções funcionaram, mas no caso eu gostaria de remover da lista, e não do texto.
Boa noite, laisrmlc.
O SCRIPT abaixo, pega as palavras de
lista.txt , uma a uma.
Faz a busca em
texto.txt , envia a "
PALAVRA " com o Nº de vezes que "apareceu, para
ESTATISTICAS.txt
Se não encontrar, o Nº de vezes é = "0"
Segue:
#COMEÇA NA LINHA ABAIXO#
#!/bin/bash
############################
# BUSCA_PALAVRAS.sh V_01 #
# Marcelo Oliver #
# Abril/2016 #
############################
> ESTATISTICAS.txt
MSG() {
(($NP)) || NP="0"
echo "$NP" "$palavra" >> ESTATISTICAS.txt
}
BUSCA_PALAVRA() {
NReg=$(awk 'END {print NR}' lista.txt)
for ((X=1;X<=$NReg;X++));do
palavra=$(sed -n "$X"p lista.txt)
if egrep -w --color "$palavra" texto.txt ;then
NP=$(egrep -wo "$palavra" texto.txt|wc -l)
MSG
unset NP
else
MSG
fi
done
}
BUSCA_PALAVRA
#TERMINA NA LINHA ACIMA#
OBS.:
Copie o SCRIPT acima, cole no seu editor de textos, salve e, não esqueça . . .
De permissão de execução:
chmod +x NOMEDOSCRIPT
Altere o nome dos ARQUIVOS para o seu caso . . . :)
Após "rodar" o SCRIPT, veja as estatísticas com os comandos abaixo:
#PALAVRAS que CONSTAM em TEXTO.txt
awk 'BEGIN{OFS="\t";printf "\nNº\tPalavra\n\n";} /^[^0]/ {print $1,$2}' ESTATISTICAS.txt
#PALAVRAS que NÃO CONSTAM
awk 'BEGIN{printf "\nNão CONSTA:\n\n";} /^0/ {print $2}' ESTATISTICAS.txt
----------------------------------------------------------------------------------------
Se a resposta lhe ajudou, marque-a como a MELHOR, dessa forma, ganho uns pontos,
o que incentiva a continuar colaborando, ajudando, participando e compartilhando conhecimentos . . . :)
----------------------------------------------------------------------------------------
Att.:
Marcelo Oliver