Si vous souhaitez afficher le fichier, vous pouvez envoyer la sortie via col -bp
; ceci interprète les caractères de contrôle. Ensuite, vous pouvez passer moins de temps, si vous le souhaitez.
col -bp typescript | less -R
Sur certains systèmes col
n'accepterait pas d'argument de nom de fichier, utilisez plutôt cette syntaxe :
col -bp <typescript | less -R
cat typescript | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > typescript-processed
voici une interprétation de la chaîne saisie dans perl
:
s/pattern//g
signifie faire une substitution sur l'ensemble (leg
l'option signifie faire tout au lieu de s'arrêter au premier substitut) chaîne d'entrée
voici une interprétation du modèle regex :
\e
correspond au caractère de contrôle spécial "escape" (ASCII 0x1A)(
et)
sont le début et la fin d'un groupe|
signifie que le groupe peut correspondre à l'un des N motifs. où les N motifs sont[^\[\]]
ou\[.*?[a-zA-Z]
ou\].*?\a
[^\[\]]
signifie- faire correspondre un ensemble de caractères NOT où les caractères not sont
[
et]
- faire correspondre un ensemble de caractères NOT où les caractères not sont
\[.*?[a-zA-Z]
signifie- faire correspondre une chaîne commençant par
[
puis faire un.*?
non gourmand jusqu'au premier caractère alpha
- faire correspondre une chaîne commençant par
\].*?\a
signifie- faire correspondre une chaîne qui commence par
]
puis faire un.*?
non gourmand jusqu'à ce que vous appuyiez sur le caractère de contrôle spécial appelé "le caractère d'alerte (cloche)"
- faire correspondre une chaîne qui commence par
Pour une grande quantité de script
sortie, je piraterais un script perl ensemble de manière itérative. Sinon, modifiez à la main avec un bon éditeur.
Il est peu probable qu'il existe une méthode automatisée existante pour supprimer les caractères de contrôle de script
sortie d'une manière qui reproduit ce qui était affiché à l'écran à certains moments importants (comme lorsque l'hôte attendait ce premier caractère d'une entrée utilisateur).
Par exemple, l'écran peut être vide sauf pour Andrew $
, si vous avez ensuite tapé rm /*
et appuyé douze fois sur retour arrière (beaucoup plus que nécessaire), ce qui s'affiche à la fin dépend du shell en cours d'exécution, de votre stty
actuel sont les paramètres (que vous pouvez modifier au cours d'une session) et probablement d'autres facteurs également.
Ce qui précède s'applique à toute méthode automatisée de capture continue d'entrée et de sortie. La principale alternative est de prendre des "captures d'écran" ou de couper et coller l'écran à des moments appropriés pendant la session (ce que je fais pour les guides de l'utilisateur, les notes pour un journal de bord, etc.).