どう書く?org : 手作業Grep

original page : http://ja.doukaku.org/252/

標準入力を読み込んで、行選択のUIをだし、選択されたものだけを標準出力にだしてください。
標準出力に出力するタイミングは選択終了をユーザーが報告したときです。(完了ボタンを想定してください)

UIライブラリは何をつかってもかまいません。
例えばncursesのようなコンソール上でのUIでもかまいませんし、GtkのようなGUIライブラリでもかまいません。

想定される使い方としては、以下のような感じです。

ps aux | handgrep | xargs kill -9

プロセスの一覧を表示、UI上で選択したものをkill

#9047

original page : http://ja.doukaku.org/comment/9047/

Rの標準機能だけで書いてみました。

標準入力を読ませたあと、excelのようなインターフェイスのデータエディタが起動するので、選択したい値の左にある"select"のカラムに0以外の値を記入してください。

hand.grep <- function(){
  df <- edit(data.frame(select=0, value=readLines()))
  as.character(df[(df[,1]!=0),2])
}