Với grep, tôi muốn chọn tất cả các dòng khớp với một mẫu và không khớp với mẫu khác. Tôi muốn có thể sử dụng một lệnh gọi duy nhất grepđể tôi có thể sử dụng --after-contexttùy chọn (hoặc --before-context, hoặc --context).
-vkhông khả thi ở đây, vì nó phủ nhận tất cả các mẫu tôi chuyển sang grepsử dụng -etùy chọn.
Thí dụ
Tôi muốn tìm kiếm các dòng khớp needle, bỏ qua các dòng khớp ignore me, với một dòng của bối cảnh sau.
Đây là tập tin đầu vào của tôi:
one needle ignore me
two
three
four needle
five
Đầu ra tôi muốn là:
four needle
five
Như bạn có thể thấy, giải pháp ngây thơ này không hoạt động:
$ cat file | grep --after-context=1 needle | grep -v 'ignore me'
two
---
four needle
five
ack