[Hyper Estraier] Hyper Estraierの検索結果を表示するコマンド その2
はじめに
この記事は、id:SumiTomohiko:20070502:1178119948の続きです。
問題点
id:SumiTomohiko:20070502:1178119948で作成したスクリプトには、以下の問題点がありました。
- 最大10件しか表示されない。
- 表示される順序がランダムである。
また、以下のようにした方がよいのでは、とも思いました。
解決方法
解決方法は、以下の通りです。
- estcmd searchコマンドに、"-max -1"オプションを追加する(-maxオプションに負数を指定すると、すべて出てくる)。
- estcmd searchコマンドの結果を、sort -nコマンドでソートする。
- nkfコマンドの場所を変更する。
最終的なスクリプトは、以下の通りです。
#!/bin/sh awk="/usr/bin/awk" cat="/bin/cat" estcmd="/usr/bin/estcmd" sort="/usr/bin/sort" nkf="/usr/bin/nkf" db="${HOME}/mail.db" ${estcmd} search -max -1 "${db}" "$@" | ${awk} 'BEGIN{ line = 0; } /^--------/{ line++; } /^[0-9]+$/{ if (line == 2) { print $0; } }' | ${sort} -n | while read id do ${estcmd} get "${db}" ${id} _lreal done | while read file do ${cat} "${file}" | ${nkf} -w done
所感
まだ1日しか使っていませんが、使い心地はよいです(具体的に言うと、検索速度が十分速いです)。
それと上のスクリプトのように、パイプが繋がっているのを見ると、私は美しいと感じるのですが、これは私だけですかそうですか。