2

我想做一个 grep 来挖掘我的代码层次结构并寻找术语“x”,但为结果着色并排除烦人的术语。现在我做:

grep -Rn --color x * | grep -v -e html -e svn -e test -e doc -e y

问题是这会因为管道而失去匹配的颜色。有没有办法做出这样的声明,这样颜色就不会丢失?

4

2 回答 2

4

指定--color=always通过管道保留颜色格式:

grep --color=always x * | grep -v -e html -e svn -e test -e doc -e y

稍后,如果您碰巧需要将结果传输到文件中并需要删除格式化颜色的转义字符,这里有一个漂亮的 sed 脚本,您可以通过管道传输结果以删除转义字符:

sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" 

(请注意,您需要-E选项而不是-rOS X)

于 2012-11-01T21:16:31.753 回答
1

您可以尝试重复颜色搜索:

grep -Rn --color x * | grep -v -e html -e svn -e test -e doc -e y | grep --color x
于 2012-11-01T20:56:01.643 回答