ユーザー入力の行編集を実行する (スクリプト コマンド)

ユーザー入力の行編集を実行する (スクリプト コマンド)

この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

関連情報