コマンドラインで単語帳(bash readで入力待ち)

tango-cho
『映画 ビリギャル』(2015) ドラゴン桜のような勉強テクニック満載を期待して、よーし映画見た後に勉強するぞー! という気になろうと思ってたのですが、まったく期待を裏切ってくれました。この映画、ただの家族の感動ストーリーでした。
ただの、というか、映画はすごく面白いんです。ですが内容が違うんです。まあ勝手に勘違いしてるだけですが。

では気を取り直してコマンドラインで英単語の単語帳を作ってみます。
単語帳のネタとして、/usr/share/dict/wordsを使いますが、ファイルの先頭に並んでいる単語から見て分かる通り、'(アポストロフィ)付きの単語が多く出現します。

~$ head /usr/share/dict/words
A
A's
AA's
AB's
ABM's
AC's
ACTH's
AI's
AIDS's
AM's
~$ wc -l !$
wc -l /usr/share/dict/words
99171 /usr/share/dict/words
~$ grep \' !$ | wc -l
grep \' /usr/share/dict/words | wc -l
26226
~$ 

ですので、ネタとしてはアポストロフィ抜きの単語をランダムに抽出します。そして、せっかくなので、ランダムに出てきた単語は、一つ一つ調べて覚えてしまいます。結局単語帳って、単語帳作りで暗記した単語の復習ですからね。

~$ grep -v \' /usr/share/dict/words | shuf | head -20 > tango.txt
~$ cat -n tango.txt
     1	interceded
     2	downswing
     3	phonologist
     4	Psalter
     5	wiliest
     6	reassign
     7	depending
     8	Segovia
     9	ailing
    10	clasp
    11	grainy
    12	salient
    13	estates
    14	mothballed
    15	throttling
    16	niggers
    17	decaying
    18	lefties
    19	sociology
    20	classification
~$ 

grepの-vオプションは、–invert-matchの意味で、マッチしない行の表示です。

では手動で、各単語を調べて、tango.txtに書いてきます。
・・・
以下のようにtango.txtへ追記しました。

~$ cat -n tango.txt
     1	interceded (過)仲裁する、仲を取り持つ、取り成す
     2	downswing (名)(腕・棒状のものなどの)振り降ろし
     3	phonologist (名)音韻学者
     4	Psalter (名)(旧約聖書中の)詩篇
     5	wiliest (形)ずる賢い、狡猾な、術策[策略]に富む/wily/willer/wiliest
     6	reassign (他動)再び割り当てる/転任させる
     7	depending (自動)(~によって)決まる、左右される文例/~ing
     8	Segovia (地名)セゴビア/スペイン
     9	ailing (形)病んでいる、病気で苦しんでいる、病気療養中の、不快な
    10	clasp (他動)(手・体・物などを)しっかり握る
    11	grainy (形)(写真が)粒子が大きい、きめが粗い
    12	salient (形)目立った、顕著な、際だった
    13	estates (名)地所、私有地/~s
    14	mothballed (他動)(工場を)操業休止にする/~ed
    15	throttling (他動)(燃料の流入を)スロットルで調整する/~ing
    16	niggers (名)黒い幼虫
    17	decaying (自動)(品質などが)低下する、悪化する
    18	lefties (名)(話)左利きの人
    19	sociology (名)社会学
    20	classification (名)分類、区分、等級

作成した単語帳データを表示する単語帳本体は、下のようにしました。

~$ cat -n tango.sh
     1	for ((i=1;i<=20;i++))
     2	do
     3	clear
     4	sed -n ${i}p tango.txt | cut -d' ' -f1
     5	read
     6	sed -n ${i}p tango.txt | cut -d' ' -f2
     7	echo;echo "覚えたらEnterキーを押して次の英単語へ"
     8	read
     9	done

4行目で単語の出題をして、6行目で解答が出ます。
5,8行目で使用しているreadコマンドは、Enterの入力まちです。

コメント

タイトルとURLをコピーしました