Dicionário on-line via linha de comando

Publicado por Xerxes 06/04/2009 (última atualização em 16/10/2017)

[ Hits: 12.658 ]

Homepage: https://notabug.org/xerxeslins/dicasgnulinux

Download dicionario.sh

Download dicio.sh (versão 2)

Download diciov3.sh (versão 3)




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.

Leia as instruções no corpo do script.

  



Versões atualizadas deste script

Versão 2 - Enviado por Xerxes em 19/01/2013

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.

Download dicio.sh


Versão 3 - Enviado por Jefferson Rocha em 18/09/2017

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

Download diciov3.sh


Esconder código-fonte

#!/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 <[email protected]>
# 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

Scripts recomendados

Verificando se uma placa de rede está presente

Dialog, script de configuração de rede

Instalador do Lazarus

Menu de saída para i3

Administrando Servidores Shell Script


  

Comentários
[1] Comentário enviado por xerxeslins em 06/04/2009 - 12:15h

Ainda tem muito o que melhorar, mas estou começando a entender shell script agora.

sem a ajuda do stremer eu na teria conseguido fazer esse. valeu!

[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

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 -codepage ISO-8859-15 $URL | iconv -f ISO-8859-15 -t utf-8 > ~/.resultado_dic
echo

echo "definição:"
#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 "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

-------------------------------------------------------------------------------------------------------------

Espero que funcione

[5] Comentário enviado por xerxeslins em 28/04/2011 - 10:00h

beleza pessoal! obrigado! mais uma modificação, sem correção dos caracteres:


if [ -z $1 ]; then
echo -n "digite a palavra: "
read pal
echo
#clear
else
pal=$1
fi

clear
echo "procurando a palavra "$pal" no dicionário priberam.pt..."
#sleep 2
#URL=http://www.priberam.pt/DLPO/default.aspx?pal=$pal
URL=http://www.priberam.pt/dlpo/dlpo.aspx?pal=$pal
links -dump -html-tables 0 -html-frames 0 $URL > ~/.resultado_dic
echo

echo "definição:"
#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 "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

[6] Comentário enviado por Dsnasc em 20/08/2011 - 19:38h

Olá, gostaria de ter site como o www.dicio.combr um site de dicionario on line. Alguem sabe como fazer e quanto custa?

[7] Comentário enviado por fabio em 29/01/2013 - 08:31h

Muito bom! Devidamente adicionado à minha biblioteca de scripts :)

[8] Comentário enviado por vitinho217 em 26/06/2014 - 11:19h

Está retornando definição vazia, por quê ?

[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.

[10] Comentário enviado por xerxeslins em 02/07/2014 - 22:57h

Detalhe: use palavras sem acento, mesmo que ela tenha.


Contribuir com comentário