Vì vậy, tôi có một loạt các bản ghi Apache bằng cách sử dụng định dạng nhật ký tiêu chuẩn. Tôi muốn nhận tất cả các dòng nhật ký không đến từ trình thu thập dữ liệu web.
Vì vậy, giả sử tôi có một tệp robot_potypes với các mục như
Googlebot
msnbot-media
YandexBot
bingbot
Nếu tôi chạy lệnh, grep -f robot_patterns *.log
tôi sẽ nhận được tất cả các mục bằng bot khớp với các mẫu trên. Danh sách thực tế của tôi có ~ 30 mục bot và đại lý mà tôi muốn bỏ qua.
Nhưng tôi muốn tìm tất cả các mục KHÔNG phải từ bot . Vì vậy, tôi cố gắng grep -v -f robot_patterns *.log
và không có kết quả được trả về bởi grep. Đây không phải là những gì tôi mong đợi hoặc mong muốn, và tôi không tìm thấy một cách rõ ràng để có được những gì tôi muốn. Khi sử dụng -v
tùy chọn kết hợp với nhiều mẫu trong một tệp, grep sẽ chỉ trả về một dòng khớp nếu nó khớp với MỌI mẫu.
GNU grep 2.6.3
.