在终端中记录输入和输出而不产生奇怪的字符

在终端中记录输入和输出而不产生奇怪的字符

我正在寻找一种方法来记录会话期间终端上的所有输入和输出,但我找不到正确的答案。这这个帖子建议使用script screen.log来执行此操作,这似乎很完美,这正是我需要的。但是,这会生成一个包含非常奇怪字符的文件如该图所示(该文件的 VIM 截图)。我也尝试用 Sublime Text 打开它,但里面也出现了奇怪的字符。

我在两台不同的机器上尝试过这种方法,一台使用 WLS 2 和 Ubuntu 20.04.1 LTS(focal),另一台使用 WLS 1 和 Ubuntu 18.04.2 LTS(bionic)。两台机器的结果相同。

有没有什么方法可以做到这一点而不使用奇怪的字符?

非常感谢

答案1

正如 Steeldriver 指出的那样,这些是控制序列。在谷歌上搜索这个术语后,我找到了这个帖子解决方案:只需照常运行脚本命令即可保存文件后,使用此命令删除垃圾字符:

cat typescript | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' \
             | col -b > typescript-processed

对我有用

相关内容