このscript
プログラムを使用して、対話型セッションを記録しました。
$ script
$ echo<-<-<-<-printf "hello\n"
$ exit
このシーケンス<-
はバックスペース文字を表します。
出力として次のものが欲しいです:
$ printf "hello\n"
$ exit
しかし、実際の結果には、すべての個別のキーストロークが含まれます ( で表示cat --show-nonprinting
)。
コマンドを使用して行ごとに読み込んでみましたread
。バックスペースは編集されますが、コマンド プロンプトも削除され、\n
に変換されるようですn
。
ユーザーが画面に表示していたテキスト (コマンド プロンプト、編集された入力、コマンド出力 - 色は関係ありません) を表示する方法を探しています。
参考までにサンプル出力:
^[[?2004l^M^[[?2004h$ echo^H^[[K^H^[[K^H^[[K^H^[[Kprintf "hello\n"^M
^[[?2004l^Mhello^M
^[[?2004h$ exit^M
^[[?2004l^Mexit^M
答え1
私の記憶では、ANSI2TXT のまさにあなたが望むことを実行します:
$ ansi2txt typescript > ANSI2TXT
$ cat ANSI2TXT
$ printf "hello\n"
hello
$ exit
Script done on Wed 15 Apr 2020 07:48:55 PM CEST