私の問題は次のようになりますこれcut
;シミュレーションnowrap
に使用したいのですが、tmux
出力は色で表示されます。保持したい列数(50個)はわかっていますが、出力に必要なカラーラベルの数はわかりません。切り取りは、cut -c-50
各行のエスケープ文字(カラーラベル)の数に応じてさまざまな出力を生成します。
要約すると、色を無視して固定幅でテキストを切り取ることで、常に50色の文字を取得できますか?
答え1
努力する:
perl -pe 's/^((?:(?>(?:\e\[.*?m)*).){50}).*/$1\e[m/'
これは ansi 型エスケープシーケンスとみなされます。
\e[31m
色の設定やリセット\e[m
など\e[0m
のエスケープシーケンスが付属しています。上記では\e[m
各行の末尾に追加しますが、入力に応じてこれは常に理想的なわけではありません。