綾小路龍之介の素人思考

[linux] grepやlsをパイプしてlessを色付きで

grepしたときにキーワードに色をつけることが可能。だけど、パイプでlessにリダイレクトすると色が消えてしまう。この理由はgrepのデフォルトでは--color=autoとなっているから。-color=autoの場合針だ入れ句があった場合に色付けを抑制据える。この挙動は不思議なことではなく、リダイレクト先に何が待っているかわからないので安全策をとろうということ。でもリダイレクト先に色付けようのエスケープシーケンスを理解するプログラムが待っている場合は、そのまま色付けして欲しい。これが今回のgrep|lessで色が消えるという問題。これを解決するには、grepに強制的に色つき出力させて、lessは色付けの背うケープシーケンスを理解させるようにしてリダイレクトを受けるようにすればよい。ということで今回の回答は下。このようにすればデフォルトでは赤い文字で色付けして表示される。

$ grep -e 'hoge' --color=always hoga.txt | less -R

lsもlessを通すと色分けが解除されるけれど、--colorオプションを付けれは強制的に色づけ可能。

$ ls --color | less -R

間違えて、less -Rではなくlessした場合だとESCという文字列が表示されてしまう。この場合はlessにパイプされた状態で-r + Enterでカラー表示、戻すにはもう一回-r + Enter

問題は、grepの色分けはすべてのキーワードで同じ色が付いてしまうこと。これは調べねば。

  1. manpage grep|less|ls - Google 検索
  2. Manpage of LESS
  3. Manpage of GREP
  4. Manpage of LS
  5. 色つき|色付き|カラー less - Google 検索
  6. @IT:カラー表示されたlsの出力をlessで表示するには
  7. less を通すと色が消えてしまう - TokuLog 改めB日記
  8. 色付きgrepをパイプに通すと色が消える - うまい棒blog
  9. bookmarks=本の栞: color with grep
  10. 野ログはノロキュアMaxHeart - lessでカラー表示 , 全日本アニソングランプリ
  11. MLog: [debian-users:41387] Re: lessでカラー表示
  12. FreeBSD .cshrc
  13. 仙川日記(2004-08-09)

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2009-03-31T16:20:16+09:00
  2. Modified: 2009-03-31T07:16:38+09:00
  3. Generated: 2017-11-17T23:10:22+09:00