Wie kombiniere ich mehrere grep-Befehle?

15

Ich habe einen Befehl wie diesen:

| grep -v @param | grep -v @return | grep -v @Test | grep -v @throws

und es wird immer größer, gibt es eine Möglichkeit, dies ordentlicher zu machen?

UAdapter
quelle

Antworten:

16

Andere Option:

... | grep -v -e @param -e @return -e @Test -e @throws
Eric Wilson
quelle
10

Sie können verwenden:

... | grep -v "\(@param\|@return\|@Test\|@throws\)"

Oder Sie können das Flag -E verwenden, um erweiterte reguläre Ausdrücke zu aktivieren. Auf diese Weise können Sie vermeiden, dass Klammern und Pipe-Zeichen verloren gehen:

... | grep -Ev '(@param|@return|@Test|@throws)'
lgarzo
quelle
7

Alternativ können Sie alle Ihre Muster in einer Datei platzieren, ein Muster pro Zeile, und verwenden

... | grep -v -f matches.txt

Würde es einfacher machen, wenn Sie die Muster regelmäßig verwenden

Sergey
quelle