Você executa o script e será pedido uma palavra. Você entra com essa palavra e o script irá procurar por ela em um dicionário on-line e irá mostrar o resultado.
Precisa do navegador links instalado, e também que se crie o arquivo .resultado_dic no diretório pessoal.
Changelog: Versão atualizada do dicionário on-line via linha de comando.
Novidades:
- Usa dicionário dicio.com.br ao invés de priberam
- Cria o arquivo do resultado automaticamente se não existir
- Usa sed ao invés de awk para filtrar o resultado
- Usa "| less" ao invés de "| more" para exibir
Leia a descrição no corpo do script para mais informações.
Changelog: # versão 1.1 (18/09/2017)
# - Melhorado o Script e retirado alguns comandos desnecessarios.
# - Inserido a função de menu
# - Inserido as funções (Sair, Informação e Versão)
# - Alterado função ler com pipe sed cortando as 8 primeiras linhas
# que são desnecessárias.
# - Trocado More por Less
#!/bin/sh
#--------------------------------------------------------
# dicionario.sh
#
# v0.4 beta
#
# Script usado para definição de palavras em Português
#
# Roda no console e consultar o site:
# http://www.priberam.pt/
#
#
#
# *** precisa o navegador links instalado ***
#
#
#
# Programado por Xerxes Lins <xerxeslins@gmail.com>
# Na web em:
# www.vivaolinux.com.br
# www.linuxstyle.blogspot.com
#
# Maceió, 1 de Abril de 2009
#--------------------------------------------------------
#
# Instrunções:
#
# 1. salve o arquivo dicionario.sh em seu diretório pessoal
# 2. torne-o executável:
#
# $ chmod +x ~/dicionario.sh
#
# 3. crie o arquivo oculto .resultado_dic no seu diretório pessoal:
#
# $ touch .resultado_dic
#
#
# Bem, você pode executar o script agora:
#
# $ sh ~/dicionario.sh
#
# Mas é recomendado adicionar um alias ao seu .bashrc
# para que você só precise digitar o comando "dicionario"
# edite o seu .bashrc (que fica no seu diretório pessoal)
# e adicone a seguinte linha ao final:
#
# alias dicionario='~/dicionario.sh'
#
# Agora bastará executar o comando a baixo para ativar o dicionário:
#
# $ dicionario
#
#-------------------------------------------------
clear
echo -n "digite a palavra: "
read pal
echo
clear
echo "procurando a palavra "$pal" no dicionário priberam.pt..."
sleep 2
URL=http://www.priberam.pt/DLPO/default.aspx?pal=$pal
links -dump -html-tables 0 -html-frames 0 $URL > ~/.resultado_dic
echo
echo "resultado:"
sleep 1
echo
cat ~/.resultado_dic | wc -l | grep -A `awk '{print $1}'` "Lingua Portuguesa On-Line" ~/.resultado_dic | more
[2] Comentário enviado por everthonvs em 22/06/2009 - 17:19h
xerxes, muito útil seu script! parabéns pela iniciativa :)
como o site priberam.pt teve uma atualização agora no início de junho, eu fiz algumas modificações/correções, as quais compartilho abaixo:
clear
# aceita um argumento ao invocar o script (ex.: dicionario.sh liberdade)
if [ -z $1 ]; then
echo -n "digite a palavra: "
read pal
echo
clear
else
pal=$1
fi
echo "procurando a palavra "$pal" no dicionário priberam.pt..."
#sleep 2
URL=http://www.priberam.pt/DLPO/default.aspx?pal=$pal
links -dump -html-tables 0 -html-frames 0 $URL > ~/.resultado_dic
## TODO: necessita realizar o dump com a codificação correta (ç e acentos ficam bagunçados)
echo
echo "resultado:"
#sleep 1
echo
# modificação para imprimir somente a definição da palavra (tb se fez necessária após a atualização do site)
INICIO=`cat ~/.resultado_dic | grep -n "$pal |" | sed 's/:.*//g'`
FINAL=`cat ~/.resultado_dic | grep -n "Palavras relacionadas com: $pal" | sed 's/:.*//g'`
cat ~/.resultado_dic | awk -v INICIO=$INICIO -v FINAL=$FINAL '{if(NR>=INICIO && NR<=(FINAL-4))print $0}'
[3] Comentário enviado por everthonvs em 22/06/2009 - 17:26h
o problema da impressão do texto com codificação errada gerou um problema derivado: o grep pela palavra pesquisada falha caso ela contenha acentos ou cedilha (ex.: esdrúxulo, caçar), retornando um resultado vazio apesar da definição não o ser.
enfim, qdo eu tiver um tempinho vou ver se consigo comandar o links pra realizar o dump com a codificação (codepage, charset) correta.
[4] Comentário enviado por Unkuiri em 30/12/2010 - 00:09h
Penso ter resolvido o problema da codificação, utilizei simplesmente o iconv para converter para utf-8 a partir de uma codificação que defini antes e que o links suporta, fiz mais outras alterações.
Aqui vai o script completo:
-------------------------------------------------------------------------------------------------------------
# aceita um argumento ao invocar o script (ex.: dicionario.sh liberdade)
if [ -z $1 ]; then
echo -n "digite a palavra: "
read pal
echo
clear
else
pal=$1
fi
# modificação para imprimir somente a definição da palavra (tb se fez necessária após a atualização do site)
INICIO=`cat ~/.resultado_dic | grep -n "Traduzir para espanhol Traduzir para francês Traduzir para inglês" | sed 's/:.*//g'`
FINAL=`cat ~/.resultado_dic | grep -n "IFrame" | sed 's/:.*//g'`
#remover o "Sabia que?..."
sed -e '/Sabia que? Pode consultar o significado de qualquer palavra abaixo com um/d' -e '/duplo clique. Experimente!/d' ~/.resultado_dic > .resultadotemp
mv .resultadotemp ~/.resultado_dic
cat ~/.resultado_dic | awk -v INICIO=$INICIO -v FINAL=$FINAL '{if(NR>=(INICIO+1) && NR<=(FINAL-3))print $0}'
# não se precisa do ficheiro pra nada na nossa pasta pessoal:
rm .resultado_dic
# modificação para imprimir somente a definição da palavra (tb se fez necessária após a atualização do site)
INICIO=`cat ~/.resultado_dic | grep -n "Sabia que?" | sed 's/:.*//g'`
FINAL=`cat ~/.resultado_dic | grep -n "IFrame" | sed 's/:.*//g'`
#remover o "Sabia que?..."
sed -e '/Sabia que? Pode consultar o significado de qualquer palavra abaixo com um/d' -e '/duplo clique. Experimente!/d' ~/.resultado_dic > .resultadotemp
mv .resultadotemp ~/.resultado_dic
cat ~/.resultado_dic | awk -v INICIO=$INICIO -v FINAL=$FINAL '{if(NR>=(INICIO+1) && NR<=(FINAL-3))print $0}'
# não se precisa do ficheiro pra nada na nossa pasta pessoal:
rm .resultado_dic
[9] Comentário enviado por xerxeslins em 26/06/2014 - 23:49h
[8] Comentário enviado por vitinho217 em 26/06/2014 - 11:19h:
Está retornando definição vazia, por quê ?
O script é antigo e a página do dicionário é alterada com o tempo. Sendo assim, depois que a página muda, o script precisa ser atualizado. mas eu ainda não atualizei.