如何使用输入的 ansi 颜色编码进行 grep 维护?
How to grep with input ansi color encoding maintained?
以下grep
不维护输入的ANSI颜色编码。有没有办法保持原来的颜色编码?
$ builtin printf '%s\n' $'\e[33mx\e[0m' | grep $'\e\[33m'
x
禁用 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
以下grep
不维护输入的ANSI颜色编码。有没有办法保持原来的颜色编码?
$ builtin printf '%s\n' $'\e[33mx\e[0m' | grep $'\e\[33m'
x
禁用 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