Tôi đang sử dụng egrep ( grep -E
) với tập tin THỰC HIỆN. ( -f path/to/file
).
Điều này được thực hiện trong một vòng lặp vô hạn trên một luồng văn bản. Điều này ngụ ý rằng tôi không thể tích lũy và chuyển TẤT CẢ đầu vào cho grep cùng một lúc (như *.log
).
Có cách nào để grep "lưu" NFA mà nó đang xây dựng từ tệp MẪU để sử dụng cho lần chạy tiếp theo không?
Tôi đã tìm kiếm Google và đọc tài liệu không có may mắn.
Tôi sẽ cố gắng giải thích thêm một chút nữa. Tôi cần xác định một số chuỗi cố định với biểu thức chính quy (Đây không phải là một phần của câu hỏi nhưng vui lòng đề xuất khác) như địa chỉ IP, tên miền, v.v. Việc tìm kiếm được thực hiện trên nguồn cấp dữ liệu từ internet. Bạn có thể nghĩ về nó như một dòng văn bản. Tôi không thể sử dụng grep
trên tất cả các đầu vào vì đó là một luồng. Tôi có thể tích lũy một đoạn luồng và sử dụng grep
trên luồng đó (do đó không sử dụng grep
trên mỗi dòng) nhưng điều này cũng bị hạn chế (giả sử trong 30 giây).
Tôi biết grep
đang xây dựng một NFA từ tất cả các mẫu của nó (trong trường hợp của tôi từ một tệp). Vì vậy, câu hỏi của tôi ở đây là: tôi có thể bảo grep
lưu NFA đó cho lần chạy tiếp theo không, vì nó sẽ không thay đổi? Điều đó sẽ giúp tôi tiết kiệm thời gian xây dựng NFA đó mỗi lần.
grep
trên đoạn đó.
grep
nhiều lần. Có thể liên quan: Tại sao việc kết hợp chuỗi 1250 với các mẫu 90k lại chậm như vậy?
grep
có nghĩa là để làm việc trên một dòng văn bản, tôi vẫn không hiểu tại sao bạn cần chạy một số trường hợp. Tại sao bạn không thể cho tất cả những người đó vào cùng một grep
ví dụ? Tại sao bạn cần tích lũy chúng trước khi cho ăn grep
?
grep
dòng trên mỗi dòng văn bản? Văn bản đến từ đâu? Sẽtail -f
là một lựa chọn?