出力行を黄色にする以下のコマンドを使用すると、less は基本的に cat に変換され、ファイル全体が印刷され、改ページでの停止、ナビゲーションの許可など、less で必要なすべての機能が無効になります。less を操作するために使用できる引数のほとんども無視されます。sed カラー シーケンスが less の機能を壊さないようにする方法はありますか?
less file | sed -e 's/\(.*DATA.*\)/\o033[93m\1\o033[39m/'
答え1
less
おそらく、の出力に を使用するのsed
ではなく、その逆を意図していたのでしょう:
sed -e 's/\(.*DATA.*\)/\o033[93m\1\o033[39m/' file | less -R
参考文献:
答え2
出力を に渡す場合は、コマンドはまったくless
必要ありません。検索したパターンをどのように強調表示するかを設定するだけです (例: )。sed
less
.bashrc
export LESS_TERMCAP_so=$'\e[93m' # begin standout mode
export LESS_TERMCAP_se=$'\e[m' # end standout mode
そしてオプションless
を付けて実行します-p
:
less -p '.*DATA.*' file