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

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

このプログラムを使用してscript対話型セッションを録音しました。

$ script
$ echo<-<-<-<-printf "hello\n"
$ exit

このシーケンスは<-バックスペース文字を表します。

私は以下を出力として欲しい:

$ printf "hello\n"
$ exit

ただし、実際の結果にはすべての個別のキー入力(findを含むcat --show-nonprinting)が含まれます。

commandを使って1行ずつ読みました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

関連情報