1
0

More than 3 years have passed since last update.

terminalから英単語を検索する

Last updated at Posted at 2020-09-29

はじめに

terminalから全ての動作を完結させたいというのは,どんなプログラマーでも思っていることと信じたい.
(emacsは使えないのでvscode派なのは内緒)

ということで,rubyでterminalから英単語の意味を調べる.

プログラム本体

旧バージョン

dic.rb
system "curl -s https://ejje.weblio.jp/content/#{ARGV[0]} | grep 主な > ~/dic/tmp.txt"

File.open("#{Dir.home}/dic/tmp.txt", "r") do |f|
  f.readlines[0].match(/.*<td class="content-explanation .*\">(.*)<\/td>.*/)
  puts $1
end

system "rm ~/dic/tmp.txt"

1行目:システムコールでcurlを使用.Weblio英和辞典を使用させていただいている.引数をurl内で展開して,grepで絞り込んでいる.それを,~/dic/tmp.txtに書き込む.

2行目:先ほどのファイルを読み込みモードで開く.Fileメソッドでは"~"が使えなかったので,Dir.homeとしている.

3行目:ファイルを読み込み,正規表現を用いて和訳部分を抽出.それを出力する.

最後に,ファイルを消去.

新バージョン

@scivola さんよりコメントで指摘いただきました.ありがとうございます.

dic.rb
result = `curl -s https://ejje.weblio.jp/content/#{ARGV[0]}`
puts result.match(%r{主な.*<td class="content-explanation .*">(.*)</td>}).to_a[1]

こんなにも簡潔に記述できるなんて!
まだまだ,学ぶことがたくさんあると痛感しました.

aliasを追加

config.fish
alias dic='ruby ~/dic/dic.rb'

使用例

~ 
❯❯❯ dic dog
犬、(イヌ科の動物の)雄、雄犬、くだらない人間、魅力のない男、醜い女、「ぶす」、やつ、くだらないもの、失敗作

単語はもちろん

~ 
❯❯❯ dic takecareof
…を世話する、大事にする、…に気をつける、…を引き受ける、を処理する、切り抜ける、自分のことは自分で始末する、をやっつける、殺す

連語もok

~ 
❯❯❯ dic 物理
natural philosophy、physics

逆に英訳もok

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0