我正在使用 linux 'script' 命令 http://www.linuxcommand.org/man_pages/script1.html来跟踪一些交互式会话。输出文件包含不可打印的字符,包括我的退格键。
有没有办法整理这些输出文件,以便它们只包含屏幕上显示的内容?
或者是否有另一种方法来记录交互式 shell 会话(输入和输出)?
Arc*_*ege 37
如果要查看文件,则可以通过col -bp
; 这解释了控制字符。然后,如果您愿意,您可以减少管道流量。
col -bp typescript | less -R
Run Code Online (Sandbox Code Playgroud)
在某些系统上col
不接受文件名参数,请改用以下语法:
col -bp <typescript | less -R
Run Code Online (Sandbox Code Playgroud)
Mye*_*yer 23
cat typescript | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > typescript-processed
Run Code Online (Sandbox Code Playgroud)
这是对字符串输入的一些解释perl
:
s/pattern//g
表示对整个g
输入字符串进行替换(该选项表示进行整个操作而不是在第一个替换时停止)输入字符串这是对正则表达式模式的一些解释:
\e
匹配特殊的“转义”控制字符(ASCII 0x1A)(
并且)
是一个组的开始和结束|
表示该组可以匹配 N 个模式之一。其中 N 个模式是
[^\[\]]
或者\[.*?[a-zA-Z]
或者 \].*?\a
[^\[\]]
方法
[
和]
\[.*?[a-zA-Z]
方法
[
然后执行非贪婪.*?
直到第一个字母字符\].*?\a
方法
]
然后执行非贪婪操作,.*?
直到您遇到称为“警报(铃)字符”的特殊控制字符小智 5
我用cat filename
它删除了控制字符:-)