headとsedはカラーコードを実際の文字として扱うようです。入力から最初のn個の実際の表示文字をどのように取得できますか?
答え1
おそらくそれほど効率的ではないでしょう。ただし、GNUを使用すると、次のことがawk
できます。
gawk -v RS='\033\\[[;[:digit:]]{0,16}[[:alpha:]]|.' -v ORS= -v count=123 '
{n += RT ~ /^[[:print:]]$/}; n > count {exit}; {print RT}'
(count
取得したい文字数はどこにありますか?)
head -c
計算は数量ですが、参考にしてくださいバイト、上記で計算された数量数値。
改行、キャリッジリターン、タブ文字などの制御文字、\e[123;123x
カラー文字(ここではx
is m
)、カーソル位置指定文字(ここではx
is H
)などの形式のエスケープシーケンスのみを考慮してください。