Làm cách nào để kết hợp nhiều lệnh grep?


15

Tôi có một lệnh như thế này:

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

và nó ngày càng lớn hơn, có cách nào để làm cho gọn gàng hơn không?

Câu trả lời:


16

Một lựa chọn khác:

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

10

Bạn có thể dùng:

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

hoặc bạn có thể sử dụng cờ -E để bật các biểu thức chính quy mở rộng, điều này sẽ cho phép bạn tránh thoát dấu ngoặc đơn và ký tự ống dẫn:

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

7

Ngoài ra, bạn có thể đặt tất cả các mẫu của mình vào một tệp, một mẫu trên mỗi dòng và sử dụng

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

Sẽ làm mọi thứ dễ dàng hơn nếu bạn sử dụng các mẫu thường xuyên

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.