Command-line English Dictionary (Naver)

cinsk의 이미지

터미널에서 편하게 쓸 수 있는 영어 사전입니다. 몇가지 기능을 보면 다음과 같습니다:

1. Naver의 영한 사전(동아 프라임)/영영 사전(Collins)을 씁니다.
2. 발음을 들을 수 있습니다.
3. 잘못된 단어를 입력하면 spell을 정정해서 추천어를 제공합니다.

이 script를 제대로 사용하기 위해서는 다음과 같은 환경이 필요합니다:

1. 기본적인 텍스트 처리 유틸리티 (awk, sed, grep 등)
2. w3m이 설치되어야 합니다. http://w3m.sourceforge.net/
3. 발음을 듣기 위해서는 mplayer가 설치되어야 합니다. (선택사항) http://www.mplayerhq.hu/
4. 철자 정정 기능을 쓰려면 dict가 설치되어야 합니다. (선택사항) http://www.dict.org/
5. 당연한 것이지만, Internet이 연결되어 있어야 합니다.

파일 등록이 귀찮아서 (자주 update 되다 보니.. -_-) CVS에 등록했습니다.
다운로드 받기
또는

$ cvs -d :pserver:anonymous@www.cinsk.org:/root login
password: <RET>
$ cvs -d :pserver:anonymous@www.cinsk.org:/root co snippets/edict.sh
$ cvs -d :pserver:anonymous@www.cinsk.org:/root logout

사용법은 간단합니다.

$ ./edict.sh -h
usage: ./edict.sh [OPTION]... WORD...
Show the definition of WORD
 
  -t XX    specify the dictionary type to use
     ko    - English to Korean dictionary (Naver)
     en    - English to English dictionary (Naver)
 
  -l       play the pronunciation audio
  -n XX	   set repeat count of the audio play
  -h       display this help and exit
  -V       output version information and exit
 
Report bugs to <cinsky at gmail.com>.
 
$ # 한 단어 뜻을 요청
$ ./edict.sh ogre
...
 
$ # 여러 단어의 뜻을 요청 (여러 정의는 각각 ^L로 구분됨)
$ ./edict ogre elf
 
$ # 철자가 틀리면 예상되는 단어를 보여줌
$ ./edict schizoprenia
No definitions found for "schizoprenia", perhaps you mean:
wn:  schizophrenia
$ _
 
$ # -l을 주면 발음을 들려줌
$ ./edict.sh -l schizophrenia
schizophrenia   /sk[ii_u]ts[ge]fri[tt_u]ni[ge]/ 
N-UNCOUNT
Schizophrenia is a serious mental illness. People who suffer from it are unable
to relate their thoughts and feelings to what is happening around them and
often withdraw from society.
Playing...Done.
 
$ # -l과 함께 -n 3을 쓰면 발음 반복 횟수를 지정
$ ./edict.sh -l -n 3 schizophrenia
...
Playing...Done.
Playing...Done.
Playing...Done.
 
$ # -t ko를 주면 영한 사전을 사용
$ ./edict.sh -t ko schizophrenia
 
schiz·o·phre·ni·a〔[e0fb][e0f4][e1ab][e0fc][e0fb][e0d4][e0ef][e0fa][e1aa]
[e0d8][e0f7][e0f2][e0d4]│[e0fb][e0f4][e1ab][e0fc][e0fb][e0f8][e0fd][e0d2]〕 n.
[e2eb] 【정신의학】 정신 분열증 

몇가지 사항들...

1. dict와 함께 dictd를 로컬 컴퓨터에 설치하면 매번 dict.org로 접속할 필요가 없으므로 매우 빠릅니다.
2. 네이버의 사전을 무단으로 이용하는 것 같아서 좀 껄끄럽네요. 그런데 어차피 사전 서비스에는 광고가 flash로 되어 있어서, w3m과 같은 text browser를 쓸 경우, 자동으로 걸러주므로 패스. -_-; Google ad-sense처럼 text 기반의 광고가 제공된다면 좋겠는데...
3. 2의 이유에서 개인적으로만 허용합니다.
4. mplayer와 dict의 경로는 PATH에 등록되어 있기만 하면 상관없습니다.
5. 아직 완전한 script가 아니므로 버그 보고 환영합니다. :)
6. 새로운 기능 제안 환영합니다. :)

댓글

쿨링팬의 이미지

-t ko로 school, root등의 단어에 대한 검색 결과가 안 나옵니다.

-t ko schizophrenia에 대한 검색 결과는 아래과 같이 나오는 것 같습니다.

schiz·o·phre·ni·a〔[e0fb][e0f4][e1ab][e0fc][e0fb][e0d4][e0ef][e0fa][e1aa]
[e0d8][e0f7][e0f2][e0d4]│[e0fb][e0f4][e1ab][e0fc][e0fb][e0f8][e0fd][e0d2]〕 n.
[e2eb] 【정신의학】 정신 분열증

-V 옵션이 동작하지 않습니다.

좋은 프로그램 감사합니다.

새로운 기능에 대한 제안사항입니다.
발음이 한 번만 나오니깐 아쉽습니다.
발음을 좀 더 잘 기억하기 위해 여러 번 듣고 싶은 경우를 대비해,
발음 반복 횟수를 설정할 수 있었으면 좋겠습니다.

cinsk의 이미지

검색 결과 안나오는 것 고쳤습니다. :)
나머지는 내일.. ^^
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/

cinsk의 이미지

-V 옵션 처리했고, 발음 반복 횟수 지정 옵션 (-n XX) 추가했습니다.

--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/

antz의 이미지

아무래도 사전이 필요하고 했었는데 좋군요.

아직 사용은 안해 봤지만, 유용하게 잘 쓸 수 있을것 같습니다.

좋은 프로그램 고맙습니다. 잘 쓰겠습니다. :-)

---


Jabber: lum0320@jabber.org

lurker의 이미지

맥의 콘솔에서 사용해 보았는데 BSD의 which는 리눅스에서 which와 동작이 다른 모양입니다.
dict를 찾을 수 없음에도 불구하고 which dict의 리턴값이 0이라 dict를 쓰려고 하다가 죽어버리는군요 ㄱ-

OTL~

cinsk의 이미지

which를 안 쓰도록 고쳤습니다. 정 안되면 소스 안의 MPLAYER_PATH와 DICT_PATH의 값을 지우시면 됩니다.

--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/

linuxian의 이미지

추가하면 좋겠네요^^

빈도수도 같이 나오게

전에 비스무리하게 사용하고있었는데

님이 제작하신게 훨씬 편하고좋네요

mwmw7의 이미지

보여주는 기능있으면 좋겠네요

저도 전에 비스무리하게 만들어서 사용하고 있었는데

님이 제작하신게 훨씬 편하고 좋네요^^

zzz

서지훈의 이미지

CVS password:
cvs login: authorization failed: server www.cinsk.org rejected access to /root for user anonymous

이건 어떻게 해결을 ,,, orz

방금 보니 가 정말 [enter]네요 ㅋ
지금 로그인 성공 ㅋㅋㅋ

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <beer.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

nice72의 이미지

안녕하세요.

리눅스 콘솔용 사전을 찾다가 edict.sh를 찾아 사용하는 사람입니다.

우선 이런 스크립트를 만들어주신 것에 대한 감사 인사를 먼저 올립니다.

...

제가 질문드리고 싶은 내용은..

제 경우엔 음성 플레이 옵션을 사용하는데..요즘 소리가 나질 않아서..스크립트를 보게 되었습니다.

.. 살펴본 결과 사전 홈페이지에서 표현 양식을 변경하였더군요. 아래와 같은 식으로..

a href="http://dn-naverdic.ktics.co.kr/naverdic/f53462a8a09d72dcc2656dae898259fa/48745919/naverdic/eedic/25/25991.mp3" class="play"img src="http://static.naver.com/dic/tts/btn_listen.gif" width="67" height="22" alt="��������"

그래서 스크립트를 약간 변경하였습니다.. 아래와 같이..

url=`w3m -dump_source "${EEDIC_URL}${word}" | sed -ne "s/.*\(http:\/\/.*\.mp3\).*/\1/p"`

결과.. 원하는 주소는 찾아내지만.. 뒷쪽 ��������" 문자열도 같이 나오더라구요.

제가 워낙 스크립트 초짜라...

혹시 해결방법이 있으시면 알려주세요.

감사합니다.

nice72의 이미지

Submitted by duyoungk on 목, 2008/07/10 - 6:05pm.
0
points

음... 저도 원인은 모르겠지만

html소스가 너무 길어서 그런건지... sed로 잘 뽑혀지지 않네요

url얻는 부분을 vi를 이용해서 해보시는건 어떤가요

w3m -dump_source "${EEDIC_URL}${word}" | grep mp3 > url
vi -c'%s/.\+a href="\([0-9a-zA-Z:\/\-\.]\+\.mp3\).*/\1/g' -c'wq!' url
url=`cat url`
echo $url

mirheekl의 이미지

(Sorry for writing in English..)

Since I am bad at these stuffs (awk, sed, grep, w3m, dict, .....), I do not understand how your project works. However I really wanna know! Would you please explain how to gather dictionary data from naver.com? Just do HTTP query and parse it?

Thank you for understanding.

--
This is for you new people. I have just one rule :
Everyone fights, no one quits. If you don't do your job, I'll shoot you myself. Do you get me?

--

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.