less と sed カラーシーケンスを組み合わせると、改ページが防止されます。

less と sed カラーシーケンスを組み合わせると、改ページが防止されます。

出力行を黄色にする以下のコマンドを使用すると、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必要ありません。検索したパターンをどのように強調表示するかを設定するだけです (例: )。sedless.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

関連情報