我正在使用 Unixscript
命令记录输出到终端的所有内容并将其放入日志文件中。但是当我看到录制的文件时,它也包含垃圾字符。
那么如何在没有垃圾字符的情况下记录终端活动。
输出示例:
我曾尝试使用 将文件转换为 dos todos
,vim
也尝试过dos2unix
但它跳过了文件dos2unix: Skipping binary file
.
不确定您是否能够轻松摆脱这些。从script
手册页:
某些交互式命令,例如 vi(1),会在打字稿文件中产生垃圾。脚本最适合不操作屏幕的命令,其结果旨在模拟硬拷贝终端。
您显示的上述输出是在终端中产生彩色输出的转义码,以及在对拼写错误进行一些更正后似乎有人按退格键的内容。
我确实在 SuperUser 上找到了这个,它使用col
命令来清理输出:
$ col -bp typescript | less -R
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,您也可以尝试此变体:
$ col -bp < typescript
Run Code Online (Sandbox Code Playgroud)
我在commandlinefu.com上找到了这个解决方案,它同时使用了 Perl 和 col。
$ cat typescript | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' \
| col -b > typescript-processed
Run Code Online (Sandbox Code Playgroud)