J'ai trouvé un bon moyen de le faire. Sur mon système, les longues lignes de sortie sont parsemées de " ^M" (espace vide suivi d'un retour chariot). Le "^M" peut être joliment remplacé par le caractère nul "^@", qui ne s'affiche pas du tout lorsque vous capturez le fichier.
Je capture également le timing, donc pour rejouer le fichier parfaitement, je ne peux pas simplement supprimer complètement " ^M" en utilisant les commandes ci-dessous (parce que scriptreplay compte les octets) :
tr '\r' '\0' | sed 's/ \x0//g'
Je lance ma commande script comme suit :
script -t -f session.log 2>timing
Donc, ce que je fais ensuite, c'est.. :
cat session.log | tr '\r' '\0' > typescript
scriptreplay -t timing | sed 's/ \x0//g'
La première édition (avant la relecture) conserve le nombre d'octets dans le fichier. La deuxième édition (après la relecture) élimine les espaces blancs à des endroits aléatoires. (Notez que par défaut, scriptreplay recherche un fichier d'entrée nommé "typescript", c'est pourquoi je ne l'ai pas indiqué après "timing").