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 greptrê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 greptrên luồng đó (do đó không sử dụng greptrê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 greplư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.
greptrên đoạn đó.
grepnhiề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?
grepcó 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 grepví dụ? Tại sao bạn cần tích lũy chúng trước khi cho ăn grep?
grepdòng trên mỗi dòng văn bản? Văn bản đến từ đâu? Sẽtail -flà một lựa chọn?