3

有没有办法导出命令输出的颜色?

让我们用一个小例子来解释它:

ls -alh --color=auto

将打印目录的彩色内容,而

ls -alh --color=auto | cat

不会打印一些颜色。我想知道的是一个技巧或工具,我们称之为它magic,它可以恢复这些命令,例如\033[1m,以便颜色可用于后面的处理:

ls -alh --color=auto | magic | cat

或者

ls -alh --color=auto | magic >> file

更新:
ls仅用于此示例,但想知道是否存在一般可能性。

4

3 回答 3

3
script outputfile command 

会成功的。例如:

script capture.txt ls --color=always
于 2011-09-02T22:28:25.820 回答
2

由于颜色代码实际上是ls输出的一部分,因此无法“恢复”它们(因为它们一开始就不存在)。

但是如果你使用ls --color=always,ls即使在非交互模式下使用也会输出颜色代码。

于 2011-09-02T22:13:30.180 回答
2

基本上,ls它很聪明,并检测输出何时不进入终端。如果你想告诉它少一些,试试ls --color=always.

默认情况下和使用颜色来区分文件类型都被禁用--color=never。使用--color=auto, ls 仅当标准输出连接到终端时才会发出颜色代码。LS_COLORS环境变量可以更改设置。使用dircolors命令进行设置。

于 2011-09-02T22:15:20.270 回答