1

2 つの列と 2 つの行を含む変数 "x" があります。「こんにちは」を赤色で印刷したかったのでtput、結果を赤色で印刷した の助けを借りました。しかし、使用した列を適切に配置して印刷する必要もありましたcolumn -tが、出力が歪んでいます。これは、一部の制御文字が tput によって追加されるためです。

x="hello $(tput setaf 1)hi $(tput sgr0) whatsup
hey howdy cya"


echo "$x"
hello hi  whatsup
hey howdy cya

echo "$x"|column -t
hello  hi              whatsup
hey    howdy  cya

私は期待していました:

hello  hi     whatsup
hey    howdy  cya

デバッグを試みたところ、tput がいくつかの制御文字を追加して、「hi」を赤で印刷することがわかりました。

echo "$x"|cat -A
hello ^[[31mhi ^[(B^[[m whatsup$
hey howdy cya$

質問:

column -ttput からのカラー出力を " " する方法は?

編集: @Diego Torres Milano からの結果 (ALL IN RED)

hello  31mhi  Bm  whatsup
hey    howdy   cya
4

1 に答える 1