Skip to content

Instantly share code, notes, and snippets.

@audreyt
Last active October 2, 2016 17:03
Show Gist options
  • Save audreyt/4648550 to your computer and use it in GitHub Desktop.
Save audreyt/4648550 to your computer and use it in GitHub Desktop.
簡單的 ~/bin/moe 命令列搜尋器。
#!/usr/bin/env perl
use constant MoeDatabase => "$ENV{HOME}/w/newdict/development.sqlite3";
for my $arg (@ARGV) {
my $col = 'title';
if ($arg =~ /%$/) {
$arg = "%$arg";
$col = 'def';
}
$arg .= '%' unless $arg =~ s/\$$//;
system sqlite3 => MoeDatabase, qq[
SELECT '' || title || '\t' || heteronyms.bopomofo || '\n» ' || group_concat(
def, '\n» '
) || '\n'
FROM entries
JOIN heteronyms ON entry_id = entries.id
JOIN definitions ON heteronym_id = heteronyms.id
WHERE $col LIKE '$arg'
GROUP BY title, heteronyms.bopomofo;
];
}
@audreyt
Copy link
Author

audreyt commented Jan 27, 2013

參考用例:

$ moe 網際資訊
網際資訊網路   ㄨㄤˇ ㄐ|ˋ ㄗ ㄒㄩㄣˋ ㄨㄤˇ ㄌㄨˋ
» 一種透過中華電信公司所提供的電信網路與國際網際網路(internet)連接,進行各種資訊交流的系統,用戶
  可透過此網路與國際網際網路進行電子文件的存送、檔案傳送或擷取各種資料庫資訊等。為英文High Network
  的義譯。英文簡稱為 HiNet。
$ moe 一九
一九九五閏八月    | ㄐ|ㄡˇ ㄐ|ㄡˇ ㄨˇ ㄖㄨㄣˋ ㄅㄚ ㄩㄝˋ
» 書名。鄭浪平撰。民國八十三年八月商周文化出版社出版。內容談臺海危機。全名為「一九九五.閏八月-
  中共武力犯台白皮書」。

@audreyt
Copy link
Author

audreyt commented Jan 27, 2013

後綴 % 可查定義:

$ moe 天演論%
赫胥黎    ㄏㄜˋ ㄒㄩ ㄌ|ˊ
» 人名:(1) (Thomas Henry Huxley,西元1825∼1895)英國自然哲學家。學識淵博,舉凡生物、地質、教育、
  宗教諸學皆有著述,在哲學及神學上主張進化論及不可知論。著有天演論。(2)(Aldous Huxley,西元1894∼
  1963)英國小說家兼散文作家。所作小說以機智和諷刺見長。著名作品有美麗新世界、針鋒相對等。

嚴復   |ㄢˊ ㄈㄨˋ
» 人名。(西元1853∼1921)原名宗光,字又陵,後改名復,字幾道,清侯官(今福建省林森縣)人。同治間,
  留學於英國格林尼次海軍大學,歸國後歷任北洋水師學堂總辦、京師大學堂編譯局總辦等。民國初年,曾任
  北京大學校長,致力於西洋學術思想的介紹。譯書甚多,著名的有赫胥黎的天演論、亞丹斯密的原富、孟德
  斯鳩的法意、穆勒的名學、斯賓塞的群學肄言等。

@audreyt
Copy link
Author

audreyt commented Jan 27, 2013

後綴 $ 表示單詞比對(而非預設的前綴比對):

$ moe 萌$
萌  ㄇㄥˊ
» 草木初生的芽。說文解字:「萌,艸芽也。」唐˙韓愈、劉師服、侯喜、軒轅彌明˙石鼎聯句:「秋瓜未落蒂,凍芋
  強抽萌。」
» 事物發生的開端或徵兆。韓非子˙說林上:「聖人見微以知萌,見端以知末。」漢˙蔡邕˙對詔問灾異八事:「以
  杜漸防萌,則其救也。」
» 人民。通「氓」。如:「萌黎」、「萌隸」。
» 姓。如五代時蜀有萌慮。
» 發芽。如:「萌芽」。楚辭˙王逸˙九思˙傷時:「明風習習兮龢暖,百草萌兮華榮。」
» 發生。如:「故態復萌」。管子˙牧民:「惟有道者,能備患於未形也,故禍不萌。」三國演義˙第一回:「若
  萌異心,必獲惡報。」

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment