人気ブログランキング |

wlocate と wgrep

wlocate はlocate のデータにHTMLのタグをつけて、w3m にパイプしただけのスクリプトだが、結構使い勝手がよかった。最近は Windows しか使っていなかったのでお蔵入りしていたが、Linux に久しぶりに復帰したので再掲する。

スクリプトが動作するためには Ruby と w3m がインストールされている必要がある。

下のスクリプトを chmod +x wlocate wgrep して、sudo cp wlocate /usr/local/bin のようにパスの通ったディレクトリにコピーする。そのあとは、普通に locate や grep を使うときのように

wlocate foo
wgrep bar *

とコマンドラインにタイプして使う。ソースは次のようになる。popen が送信の関係で全角英数になっているので半角英数に置換して使ってください。

ファイル名: wlocate

#!/usr/bin/ruby
pr = IO.popen( "locate #{ARGV[0]}", "r" )
pw = IO.popen( "w3m -T text/html", "w" )
pr.each_line { |line| line.chop!; pw.print "<a href=\"#{line}\">#{line}</a><br>\n" }
pr.close
pw.close

wgrep も wlocate と同じ発想で grep の出力にタグをつけて w3m にパイプする。

ファイル名: wgrep

#!/usr/bin/ruby -Ka
ARGV[1] = '*' if ARGV[1] == nil
pr = IO.popen("grep -H #{ARGV.join(' ')}", "r")
pw = IO.popen("w3m -T text/html", "w")
pr.each_line do |line|
line =~ /.*?:/
f = $&.dup.chop!
s = $'.dup.chop!
s2 = s.gsub(/&/n, '&amp;').gsub(/\"/n, '&quot;').gsub(/>/n, '&gt;').gsub(/</n, '&lt;')
pw.print "<a href=\"#{f}\">#{f}</a><br>"
pw.print "#{s2}<br><br>\n"
end
pr.close
pw.close
by tnomura9 | 2008-06-15 19:03 | ubuntu | Comments(0)
<< Ubuntu には root ... Ubuntu で端末を使う >>