Câu trả lời:
grep không nhất thiết cần đầu vào từ một đường ống, vì vậy bạn có thể làm
grep -vE '90\.192\.142\.138|PIX|Intrusion' cisco.log-20151103.log
Capital E chuyển sang chế độ biểu thức chính quy và các dấu chấm cần được thoát trong trường hợp này.
190.192.142.138
; thật lý tưởng, phần địa chỉ IP nên được neo nếu có thể, hoặc bao gồm bất kỳ dấu phân cách nào trước địa chỉ IP trong nhật ký, giả sử dấu phẩy "," để làm cho mọi thứ rõ ràng:grep -vE ',90\.192\.142\.138,|PIX|Intrusion' cisco.log-20151103.log
$ grep -v -f exclude.list
$ cat exclude.list
90.192.142.138
PIX
Intrusion
-E
bật ở chế độ biểu thức chính quy mở rộng , cho phép xen kẽ|
các mẫu.grep
không có -E có biểu thức chính quy và dấu chấm có ý nghĩa. Các dấu chấm đáng lẽ đã được thoát trong câu hỏi, nhưng không chắc là dãy số sẽ khớp với bất cứ thứ gì khác.grep -f
tắt biểu thức thông thường.