color tee コマンド "cotee" 素案

tail -f で、ログを眺めているときに、キーワードを見落とさないように色を付けたい。

実行例。

$ cat cotee | ./cotee
#!/usr/bin/ruby
#
# cotee - color tee command. read from stdin and write to stdout with color and files
#
#


filename = ARGV.shift

begin
  file = open("#{filename}", "w") if filename
  ARGF.each_line do |line|
    print line.gsub(/ERROR/, "\e[31m" + '\&' + "\e[0m")   # ERRORに色を付ける
    file.print line if file
  end
rescue => e
  puts e
ensure
  file.close if file
end

こんなことができたらいいな。

  • 色をつける文字を正規表現で指定可能にする
  • 何色をつけるか指定可能にする
  • 上記2つの組み合わせを可能にする
  • tee表示中に画面からの入力が出力ファイルにも反映される
    • ログを流しているときにあとで見直しやすいように、区切りを入れたり、説明を入れたり


source

#!/usr/bin/ruby
#
# cotee - color tee command. read from stdin and write to stdout with color and files
#
#

filename = ARGV.shift

begin
  file = open("#{filename}", "w") if filename
  ARGF.each_line do |line|
    print line.gsub(/ERROR/, "\e[31m" + '\&' + "\e[0m")   # ERRORに色を付ける
    file.print line if file
  end
rescue => e
  puts e
ensure
  file.close if file
end