Grep有颜色和多个排除

时间:2012-11-01 20:47:44

标签: grep

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

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

问题在于由于管道而失去了匹配的颜色。无论如何都要做出这一陈述,以便不会丢失色彩?

2 个答案:

答案 0 :(得分:3)

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

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

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

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

(请注意,对于OS X,您需要-E选项而不是-r

答案 1 :(得分:1)

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

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