Dicionário on-line via linha de comando

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

[ Hits: 13.833 ]

Homepage: -

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 Slackjeff 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 <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

Scripts recomendados

suidgidc.sh

Script que verifica se existem arquivos repetidos em dois diretórios

Não consigo executar função, usando Script

Agendamento para desligar ou reiniciar

Script que exibi informações do sistema


  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts