我正在使用 grep 过滤掉我不感兴趣的目录,如下所示:
svn stat | grep -v data/charts | grep -v lib/model | grep -v web/pics
这似乎有点“黑客”。有没有更好的方法来指定多个要忽略的字符串,这样我就不必链接多个 grep 命令了?
答案1
你可以做svn stat | grep -vE 'data/charts|lib/model|web/pics'
您可能还想看看grep -x
。ack
这可能是另一个您感兴趣的工具。
答案2
您可以将析取与 grep 结合使用。它像许多正则表达式一样是管道符号,但您必须对其进行转义,因为 bash 会将其解释为实际管道。试试这个:
svn stat | grep -v data/charts\|lib/model\|web/pics
答案3
或者使用 grep -f,并将模式列表放入文件中。(当然,如果列表内容相当稳定,那么这样做最方便。)grep -vf 可以正常工作,并且可以像常规 grep -v 一样反转匹配的含义。只需确保文件中没有任何空白行,因为它们会匹配所有内容!