Khoa học công nghệ

Cách tìm kiếm với “grep” bằng cách sử dụng chuỗi trong tệp

Bash Shell

Grep là một công cụ tuyệt vời để tìm kiếm thông qua các tệp nhật ký và lấy ra thông tin hữu ích, nhưng nếu bạn muốn tìm kiếm tệp nhật ký bằng cách sử dụng một danh sách khổng lồ từ khóa từ một tệp khác thì sao? May mắn thay, nó cũng có tính năng đó được tích hợp sẵn.

Điều này đã xảy ra với tôi khi tôi muốn lấy danh sách tất cả các URL được yêu cầu bởi một khối IP khổng lồ đang tấn công máy chủ của chúng tôi một cách thô bạo. Sau khi xác định và tạo danh sách một nghìn IP, tôi cần kéo các URL từ tệp nhật ký chính để xác định các tài nguyên được yêu cầu nhiều nhất.

Để làm điều này, bạn sẽ muốn sử dụng đối số -f, cho phép bạn chỉ định một tệp cho danh sách các mẫu cần tìm kiếm.

-f FILE, --file=FILE
    Obtain patterns from FILE, one per line.  The empty file
    contains zero patterns, and therefore  matches  nothing.
    (-f is specified by POSIX.)

Giả sử tập hợp các từ khóa hoặc chuỗi của bạn nằm trong một tệp có tên là “chuỗi tìm kiếm”, bạn có thể sử dụng đối số trên dòng lệnh như ví dụ sau. Vì tìm kiếm này sẽ tạo ra rất nhiều dữ liệu, phần “> output.txt” của lệnh sẽ gửi kết quả của lệnh vào một tệp có tên là output.txt có thể được phân tích riêng.

grep -f searchstrings filetosearch > output.txt

Vấn đề duy nhất khi sử dụng đối số -f là grep sẽ cố gắng diễn giải các từ khóa như thể chúng là các mẫu, điều này có thể làm chậm nó khi phân tích cú pháp đối với một tệp cực lớn. Vì vậy, bạn cũng có thể chỉ định tham số -F, tham số này yêu cầu grep chỉ thực hiện đối sánh chính xác với các chuỗi.

 -F, --fixed-strings
    Interpret PATTERN as a  list  of  fixed  strings,  separated  by
    newlines,  any  of  which is to be matched.  (-F is specified by
    POSIX.)

Vì vậy, toàn bộ lệnh cuối cùng sẽ giống như thế này:

grep -F -f searchstrings filetosearch > output.txt

Grep là một cách cực kỳ mạnh mẽ để tìm kiếm các tệp nhật ký, vì vậy sẽ rất đáng để bạn dành thời gian xem qua tệp man.

Leave a Comment

Stt buồn về cuộc sống mới nhất 2021