没有垃圾字符的脚本命令

Rah*_*til 4 scripting

我正在使用 Unixscript命令记录输出到终端的所有内容并将其放入日志文件中。但是当我看到录制的文件时,它也包含垃圾字符。

那么如何在没有垃圾字符的情况下记录终端活动。

输出示例: 在此处输入图片说明

我曾尝试使用 将文件转换为 dos todosvim也尝试过dos2unix但它跳过了文件dos2unix: Skipping binary file.

slm*_*slm 5

不确定您是否能够轻松摆脱这些。从script手册页:

某些交互式命令,例如 vi(1),会在打字稿文件中产生垃圾。脚本最适合不操作屏幕的命令,其结果旨在模拟硬拷贝终端。

您显示的上述输出是在终端中产生彩色输出的转义码,以及在对拼写错误进行一些更正后似乎有人按退格键的内容。

使用 col

我确实在 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)

参考