问题描述
下面的 docker run --gpus all -it tensorflow/tensorflow:2.2.1-gpu bash
不保持输入的 ANSI 颜色编码。有没有办法保持原来的颜色编码?
grep
解决方法
使用 grep
禁用 --color=never
的着色:
$ builtin printf '%s\n' $'\e[33mx\e[0m' | grep --color=never $'\e\[33m'
否则,grep
在搜索到的字符串 \e\[33m
之前插入一个转义序列对其进行着色,然后在插入另一个序列以重置所有着色之后,这又会导致字母 x 不被着色输出。
grep
的默认着色模式为 --color=auto
,仅当输出为终端时才为输出着色。因此,另一种禁用着色的方法是将 grep
的输出重定向到终端以外的地方,例如cat
:
$ builtin printf '%s\n' $'\e[33mx\e[0m' | grep $'\e\[33m' | cat