Win*_*ute 30
由于许多程序只会输出颜色序列,如果它们的stdout是终端,这个问题的一般解决方案需要诱使他们相信他们写入的管道是终端.使用scriptbsdutils中的命令可以实现这一点:
script -q -c "vagrant up" filename.txt
Run Code Online (Sandbox Code Playgroud)
这会将输出写入vagrant upfilename.txt(和终端).如果不希望回音,
script -q -c "vagrant up" filename > /dev/null
Run Code Online (Sandbox Code Playgroud)
将它只写入文件.
cho*_*oba 11
您可以将输出颜色的ANSI序列保存到文件中:
echo a | grep --color=always . > colour.txt
cat colour.txt
Run Code Online (Sandbox Code Playgroud)
某些程序,但是,往往不是,如果它们的输出不会转到终端(这就是为什么我不得不使用使用它们--color-always用grep).
您还可以使用不同颜色的回声为输出着色,并将彩色输出保存在文件中.例
echo -e '\E[37;44m'"Hello World" > my_file
Run Code Online (Sandbox Code Playgroud)
此外,您还必须熟悉终端颜色代码
使用发球台
< command line > |tee -a 'my_colour_file'
Run Code Online (Sandbox Code Playgroud)
用cat打开你的文件
cat 'my_colour_file'
Run Code Online (Sandbox Code Playgroud)
使用命名管道还可以将带有颜色的管道的所有输出重定向到另一个文件
例如
创建命名管道
mkfifo pipe.fifo
Run Code Online (Sandbox Code Playgroud)
每个命令行将其重定向到管道,如下所示
<command line> > pipe.fifo
Run Code Online (Sandbox Code Playgroud)
在另一个终端中,将所有消息从管道重定向到您的文件
cat pipe.fifo > 'my_log_file_with_colours'
Run Code Online (Sandbox Code Playgroud)
用cat打开你的文件,看看预期的结果.
我发现使用名为ansi2html.sh的工具
是将多彩终端数据导出到html文件的最简单的方法,
使用它的命令是:
ls --color=always | ansi2html.sh --palette=solarized > ~/Desktop/ls.html
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu 中,您可以安装包bsdutils以输出到带有 ANSI 颜色代码的文本文件:
script -q -c "ls --color=always" /tmp/t
Run Code Online (Sandbox Code Playgroud)
安装kbtin以生成干净的HTML文件:
ls --color=always | ansi2html > /tmp/t.html
Run Code Online (Sandbox Code Playgroud)
安装aha并wkhtmltopdf生成一个不错的PDF:
ls --color=always | aha | wkhtmltopdf - /tmp/t.pdf
Run Code Online (Sandbox Code Playgroud)
使用以上任何一种方式tee也可以在控制台上显示输出或将副本保存在另一个文件中。例子:
ls --color=always | tee /dev/stderr | aha | wkhtmltopdf - /tmp/test.pdf
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17002 次 |
| 最近记录: |