sed カラーシーケンスとあまり組み合わせないと、ページングを防ぐことができます。

sed カラーシーケンスとあまり組み合わせないと、ページングを防ぐことができます。

以下のコマンドを使用して出力行を黄色に塗りつぶすと、実際にlessがcatに変わり、ファイル全体が印刷され、改ページの停止、ナビゲーションの許可など、必要なすべての機能が無効になります。 lessの操作を実行するために使用できるほとんどの引数も無視されます。 sed カラーシーケンスによってlessの機能が中断されるのを防ぐ方法はありますか?

less file | sed -e 's/\(.*DATA.*\)/\o033[93m\1\o033[39m/'

答え1

lesssedたぶん他の方法ではなくの出力に使用しようとしたかもしれません。

sed -e 's/\(.*DATA.*\)/\o033[93m\1\o033[39m/' file | less -R

追加資料:

答え2

出力をパイプに送信するにはlessコマンドがまったく必要なく、検索されたパターンが強調表示される方法(in)などを設定するだけです。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

関連情報