ファイルを表示したい場合は、出力を col -bp
経由で送信できます;これは制御文字を解釈します。その後、必要に応じて、less をパイプできます。
col -bp typescript | less -R
一部のシステムでは col
ファイル名の引数を受け入れません。代わりに次の構文を使用してください:
col -bp <typescript | less -R
cat typescript | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > typescript-processed
perl
への文字列入力の解釈を次に示します。 :
s/pattern//g
全体で置換を行うことを意味します (g
オプションは、最初の置換で停止するのではなく、すべてを実行することを意味します) 入力文字列
正規表現パターンの解釈は次のとおりです:
\e
特殊な「エスケープ」制御文字 (ASCII 0x1A) に一致(
と)
グループの始まりと終わり|
グループが N 個のパターンの 1 つに一致できることを意味します。ここで、N パターンは[^\[\]]
または\[.*?[a-zA-Z]
または\].*?\a
[^\[\]]
手段- not 文字が
[
である一連の NOT 文字に一致します と]
- not 文字が
\[.*?[a-zA-Z]
手段[
で始まる文字列に一致 次に、貪欲でない.*?
を実行します 最初の英字まで
\].*?\a
手段]
で始まる文字列に一致 次に、貪欲でない.*?
を実行します 「アラート(ベル)キャラクター」と呼ばれる特別なコントロールキャラクターを叩くまで
大量の script
の場合 出力、perl スクリプトを繰り返しハッキングします。それ以外の場合は、優れたエディターを使用して手作業で編集してください。
script
から制御文字を削除する既存の自動化された方法はほとんどありません。 特定の重要な瞬間 (ホストがその最初を待っていたときなど) に画面に表示されていたものを再現する方法で出力する ユーザー入力の文字)
たとえば、画面は Andrew $
以外は空白である可能性があります rm /*
と入力した場合 バックスペースを 12 回押しました (必要以上に)。最後に画面に表示される内容は、実行中のシェル、現在の stty
によって異なります。 設定は (セッションの途中で変更する可能性があります) であり、おそらく他の要因も含まれます。
上記は、入力と出力を継続的にキャプチャする自動化された方法に適用されます。主な代替手段は、「スクリーン ショット」を撮るか、セッション中の適切なタイミングで画面をカット アンド ペーストすることです (これは、私がユーザー ガイドや日誌のメモなどのために行っていることです)。