我有一个生成彩色输出的命令。我希望 grep纯文本该命令的括号(同时仍然保留颜色)。如果 I grep -F '['
,由于颜色代码,每行都匹配。
如何 grep 查找括号(或其他纯文本功能)而不丢失颜色?
注意:有类似的关于 grep 颜色代码或保留颜色的帖子,这些帖子都没有帮助。
答案1
你可以这样做:
$ printf "1st line \033[31m RED literal [ \033[0m NORMAL \n2nd line \033[31m RED \033[0m NORMAL \n" | while IFS=; read -r line
do
if echo "$line" | ansifilter | grep -F '[' >/dev/null
then
echo "$line"
fi
done
1st line RED literal [ NORMAL
你必须有 抗过滤器 安装。
请注意,这不是很有效,因为 grep 会在每一行上调用,但对于小输入应该可以正常工作。