2007年1月12日 星期五

Yahoo!奇摩字典 command line version

http://plog.longwin.com.tw/programming/2007/01/12/y_dictionary_script_2007
看到一段有趣的 perl script



不過似乎一次只能查詢一個單字

於是我自己又加了一個 wrapper 上去... :P
#!/bin/sh
# FourDollars
# 2007/01/12
skip=15

function func_dict ()
{
for i in $*; do
perl -e "`tail -n +$skip $0`" $i
done
}

func_dict $* | less -r -F
exit
#!/usr/bin/perl
# Yen-Ming Lee...
...
...

這樣一來就可以一次查詢多個單字

還可以 page up, page down

不過後來又發現弄個 shell like 的界面比較好用... XD
#!/bin/sh
# FourDollars
# 2007/01/12
skip=23

function func_dict ()
{
for i in $*; do
perl -e "`tail -n +$skip $0`" $i
done
}

while :; do
echo -n "<Yahoo!奇摩字典> "
read word
if [ -z "$word" ]; then
echo
exit
fi
func_dict "$word" | less -r -F

done
exit
#!/usr/bin/perl
# Yen-Ming Lee...
...
...

哈... 後來又把兩種方式合併在一起用... :P
#!/bin/sh
# FourDollars
# 2007/01/12
skip=27

function func_dict ()
{
for i in $*; do
perl -e "`tail -n +$skip $0`" $i
done
}

if [ -z "$*" ]; then
while :; do
echo -n "<Yahoo!奇摩字典> "
read word
if [ -z "$word" ]; then
echo
exit
fi
func_dict "$word" | less -r -F
done
else
func_dict $* | less -r -F
fi
exit
#!/usr/bin/perl
# Yen-Ming Lee...
...
...

15 則留言:

$4 提到...

小聲說...

我改寫了另一個版本出來了
不過只有支援 UTF-8
有看到的有緣人就有得用... :P

http://fd.idv.tw/tux/ydict

$4 提到...

Usage:

$ ydict "apple pie" "bird flu" cat 喵 咪

or just

$ ydict

Ctrl-C to quit program.

dsewnr 提到...

謝謝大大分享,這真的超方便、超好用 : D

匿名 提到...

你好唷~請問這東西要怎麼使用啊?

$4 提到...

這是在命令列下面使用的工具
打開一個文字終端機
輸入
wget http://fd.idv.tw/tux/ydict
chmod +x ydict
然後直接執行它
./ydict
離開程式用 Ctrl+C
如果你喜歡的話可以放在 /usr/local/bin 底下
這樣以後直接打 ydict 就可以使用了~ ;)

匿名 提到...

它可不可以變成
我在EXCEL第一行打上千個單字
抓音標顯示在第二行
中文意思顯示在第三行?

匿名 提到...

我不會用耶~剛下載一個可是不會打開
我的OS是XP的

$4 提到...

大哥...
您從頭到尾就弄錯了... XD
這個 Perl Script 不是設計給 Windows XP 使用的
更不是給 Microsoft Excel 使用的
這個小程式是設計給 BSD/Linux 作業系統使用的

匿名 提到...

怪不得我搞了半天都弄不出來~~
謝謝啦~

匿名 提到...

你好: 執行這支程式出現以下的錯誤, 請問要如何解決, 謝謝.
Can't locate Encode.pm in @INC (@INC contains: /usr/local/lib/perl5/site_perl/5.005/i386-freebsd /usr/local/lib/perl5/site_perl/5.005 . /usr/libdata/perl/5.00503/mach /usr/libdata/perl/5.00503) at ydict1 line 4.
BEGIN failed--compilation aborted at ydict1 line 4.

$4 提到...

英文不是就寫了找不到 Encode.pm 你的系統上少裝了 Encode.pm 可能是因為你使用的 Perl 的版本太舊了

星夜如雨 提到...

我是出現
Can't locate LWP::Simple ......

# cpan
cpan> install LWP::Simple
出現一堆哩哩摳摳 yes ...
然後就開始安裝了
安裝完後exit離開 cpan
就可以用嘍

匿名 提到...

能不能出個google版的呢?
http://www.google.com.tw/dictionary

$4 提到...

嗯~ Google 版本的確是有在計畫之中~ 不過我有很多其他的計畫~ 看哪個時候有空突然衝動寫出來囉~ :-P

Unknown 提到...

在 win32 下面並非不能跑 perl,也不是不能輸出入到 excel 只是要搞定的 module 和要修改的功夫不少...

excel 可以先從純文字的 csv 下手

光是 shell 不支援 UTF-8 就很令人杜爛了...