ANSIコードテキストをテキストなどの出力に変換するツールはありますか?tput
帽子の名前やそうですか?
尋ねる理由は、script
同様の方法を使用してANSIシーケンスを復号化することなく結果ファイルを表示したいからです。すべてではありませんが、一部はテキスト出力が読みやすくなることを知っています。
ほとんどの場合、ANSIテキストを生成するスクリプトやプログラムのソースコードを見ることができますが、「デバッグ」のようなツールがあれば良いでしょう。
一番いいのはおそらくCだろう。?変数名、つまり:
^[[K -> <clr_eol>
これにスクリプトを書くことができることを知っています。たとえば、次のようになります。
sed 's/$/<newline>/' rec001.txt | \
sed 's/\x07/\n<bell>/g' | \
sed 's/\x1b\[K/\n<clr_eol>/g' | \
sed 's/\x1b\[?12l\x1b\[?25h/\n<cursor_normal>/g' | \
sed 's/\x1b\[\([0-9]\+\);\([0-9]\+\)H/\n<cursor_position(\1, \2)>/g' | \
sed 's/\x1b\[?1049h/\n<enter_ca_mode>/g' | \
sed 's/\x1b\[?25l/\n<cursor_invisible>/g' | \
sed 's/\x0d/<CR>/g' | \
...
これは私が行ったクイックテストの一部です。イルシ記録。
しかし、それを行うための既存のツールがあるかどうか疑問に思います。
参考までに、私たちaha
はAnsi HTMLアダプタ、ANSIをHTMLに変換します。しかし、これは私が探しているアダプタではありません。
ベストアンサー1
誰かがプログラムを提案するかもしれません。これは小さな問題ではありません。素晴らしい:
- 「ANSIシーケンス」はECMA-48に標準化されています。
- カーソル形状と_ca_モードに切り替える)は標準にはありません。
- たとえば、いくつかは次のとおりです。_ca_モードに切り替える
1049
コードが変更されました(\E7\E[?47h
)。プログラムが端末記述に依存している場合、バリアントの1つだけが認識されます。 - 一部のシーケンスはパラメータ化されます。つまり、プログラムには規則が組み込まれているか、端末機能(
\E[%i%p1%d;%p2%dH
入力に一致する正規表現など)を端末機能に変換できる必要があります。
これらすべてを念頭に置いて、誰かがプログラムを提案した場合、これらの側面を解決することはできず、ディスプレイがないだけの端末エミュレータである可能性が高くなります。