【发布时间】:2011-08-22 19:12:05
【问题描述】:
我正在尝试使用script 命令来记录交互式shell 会话,以便我可以使用它来准备文档。
根据手册页:
脚本将所有内容都放在日志文件中,包括换行符和
退格键。这不是天真的用户所期望的。
我是一个天真的用户(通常不会在手册页中大喊大叫,这相当令人兴奋!),我想处理输出,以便删除退格、换行和删除的字符等.
例如,我运行一个 脚本 会话:
stew:~> script -f scriptsession.log
Script started, file is scriptsession.log
stew:~> date
Mon Aug 22 15:00:37 EDT 2011
stew:~> #extra chars: that
stew:~> exit
exit
Script done, file is scriptsession.log
然后我使用 cat 读取会话日志:
stew:~> cat scriptsession.log
Script started on Mon 22 Aug 2011 03:00:35 PM EDT
stew:~> date
Mon Aug 22 15:00:37 EDT 2011
stew:~> #extra chars: that
stew:~> exit
exit
Script done on Mon 22 Aug 2011 03:01:01 PM EDT
但是当我使用 less 时,我看到了使用 cat 不可见的不需要字符的证据:
stew:~> less scriptsession.log
Script started on Mon 22 Aug 2011 03:00:35 PM EDT
stew:~> date
Mon Aug 22 15:00:37 EDT 2011
stew:~> #extra chars: thiESC[ESC[ESC[ESC[Kthat
stew:~> exit
exit
Script done on Mon 22 Aug 2011 03:01:01 PM EDT
scriptsession.log lines 1-8/8 (END)
当我使用 cat 时,我知道它不会删除不可见的字符,它只是不会像 less 那样明显地表示它们——所以如果我将 cat 输出通过管道传输到一个文件,它仍然有不需要的字符。
我想要的输出格式是 cat 显示 的副本。谢谢!
(抱歉,如果这是重复的,搜索“unix 脚本输出格式”会返回很多关于手头问题的噪音结果!)
【问题讨论】:
-
+1 表示“我是天真的用户”。 :-)