如何组合多个 grep 命令?

UAd*_*ter 15 bash grep

我有一个这样的命令:

| grep -v @param | grep -v @return | grep -v @Test | grep -v @throws
Run Code Online (Sandbox Code Playgroud)

而且越来越大。有没有办法让这个更整洁?

Eri*_*son 17

另外一个选项:

... | grep -v -e @param -e @return -e @Test -e @throws
Run Code Online (Sandbox Code Playgroud)


lga*_*rzo 10

您可以使用:

... | grep -v "\(@param\|@return\|@Test\|@throws\)"
Run Code Online (Sandbox Code Playgroud)

或者您可以使用 -E 标志启用扩展正则表达式,这将允许您避免转义括号和管道字符:

... | grep -Ev '(@param|@return|@Test|@throws)'
Run Code Online (Sandbox Code Playgroud)


Ser*_*gey 8

或者,您可以将所有模式放在一个文件中,每行一个模式,然后使用

... | grep -v -f matches.txt
Run Code Online (Sandbox Code Playgroud)

如果你经常使用这些模式会让事情变得更容易