我有一个调用两个命令的脚本:
long_running_command | print_progress
Run Code Online (Sandbox Code Playgroud)
在long_running_command
打印的进展,但我很不满意它。我正在使用print_progress
使其更好(即,我在一行中打印进度)。
问题:将管道连接到标准输出也会激活一个 4K 缓冲区,所以漂亮的打印程序什么都没有……什么都没有……什么都没有……很多……:)
如何禁用4K
缓冲区long_running_command
(不,我没有源)?
我可以使用“脚本”命令在命令行记录交互式会话。但是,这包括所有控制字符和颜色代码。我可以使用“col -b”删除控制字符(如退格键),但找不到删除颜色代码的简单方法。
请注意,我想以正常方式使用命令行,所以不想在那里禁用颜色 - 我只想从脚本输出中删除它们。此外,我知道可以尝试并尝试找到一个正则表达式来解决问题,但我希望有一个更简单(更可靠 - 如果我在开发正则表达式时不知道代码怎么办?)解决方案。
要显示问题:
spl62 tmp:脚本 脚本启动,文件是打字稿 spl62 lepl: ls add-licence.sed build-example.sh commit-test push-docs.sh add-licence.sh build.sh delete-licence.sed setup.py asn build-test.sh delete-licence.sh src build-doc.sh 清理 doc-src test.ini spl62 lepl:退出 脚本完成,文件是打字稿 spl62 tmp: cat -v 打字稿 脚本开始于 2011 年 6 月 9 日星期四上午 09:47:27 CLT spl62 lepl: ls^M ^[[0m^[[00madd-licence.sed^[[0m ^[[00;32mbuild-example.sh^[[0m ^[[00mcommit-test^[[0m ^[[00;32mpush-docs.sh] ^[[0米^米 ^[[00;32madd-licence.sh^[[0m ^[[00;32mbuild.sh^[[0m ^[[00mdelete-licence.sed^[[0m ^[[00msetup.py^[[0m^M] ^[[01;34masn^[[0m ^[[00;32mbuild-test.sh^[[0m ^[[00;32mdelete-licence.sh^[[0m ^[[01;34msrc^[[0m^M] ^[[00;32mbuild-doc.sh^[[0m ^[[00;32mclean^[[0m ^[[01;34mdoc-src^[[0m ^[[00mtest.ini^[[0m^M] spl62 lepl: 退出^M 脚本完成于 2011 年 6 月 9 日星期四上午 09:47:29 …
colors terminal text-processing escape-characters typescript
我正在使用 Unixscript
命令记录输出到终端的所有内容并将其放入日志文件中。但是当我看到录制的文件时,它也包含垃圾字符。
那么如何在没有垃圾字符的情况下记录终端活动。
输出示例:
我曾尝试使用 将文件转换为 dos todos
,vim
也尝试过dos2unix
但它跳过了文件dos2unix: Skipping binary file
.