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 -t
tput からのカラー出力を " " する方法は?
編集: @Diego Torres Milano からの結果 (ALL IN RED)
hello 31mhi Bm whatsup
hey howdy cya