我跑了这个命令
$ script -a 05112013.log
$ ls
$ Ctrl+D
我在05112013.log文件中看到以下内容,
Script started on Tue 05 Nov 2013 06:12:46 PM IST
^[]0;mmopuru@mmopuru:/zyme_shared/zyme_apps/zymenet/dev^G^[[?1034h[mmopuru@mmopuru dev]$ ls^M
^[[0m^[[00;33m05112013.log^[[0m ^[[01;34mberkeleydb^[[0m ^[[00;33mC:\nppdf32Log\debuglog.txt^[[0m ^[[01;34mhttpd^[[0m ^[[01;34mlib^[[0m ^[[01;34mmemcached^[[0m ^[[01;34mpython^[[0m test.py ^[[01;34mzyme_repo^[[0m^M
^[[01;34mapache-tomcat^[[0m ^[[01;34mbin^[[0m ^[[01;34mEGG-INFO^[[0m ^[[01;34mjobscheduler^[[0m ^[[01;34mlibmemcached^[[0m ^[[01;34mopenldap^[[0m ^[[01;34mrepository^[[0m ^[[01;34mzymenetwsgi^[[0m^M
^[]0;mmopuru@mmopuru:/zyme_shared/zyme_apps/zymenet/dev^G[mmopuru@mmopuru dev]$ exit^M
Script done on Tue 05 Nov 2013 06:12:51 PM IST
为什么脚本命令以Windows格式记录内容?意味着使用^ M,^ G ^ [,^ [等字符换行,标记等?
注意:当我使用 vi 中的:set ff?
检查文件格式时说fileformat=unix
。
答案 0 :(得分:1)
它不是以Windows格式登录,而是以原始(或非规范)格式登录。 script
的工作方式是将自身作为终端驱动程序插入低级别(简化)。
您经常看到的转化是由“线路规则”完成的。非规范终端使用由vi
等程序使用。
请参阅man tcgetattr
了解更多详情,而不是您真正想要的。
要从typescript
中删除不可打印的字符,您可以尝试这样做,提供您有sed
支持POSIX字符类(例如现代Linux):
sed -r 's/[^[:print:]]//' typescript > final.file