Cách sử dụng đuôi -f với grep để hiển thị các đường xung quanh


15

Tôi muốn thấy đầu ra trong một logfile chỉ có một tên miền mà còn có hai dòng sau .

Thí dụ:

tail -f /var/log/apache2/modsec_audit.log |grep mydomain.de

cái này hiển thị tất cả các dòng có chứa "mydomain.de" nhưng thông tin quan trọng nằm ở dòng bên dưới dòng, nơi bao gồm tên miền

Câu trả lời:


24

grep có các tùy chọn bổ sung để xác định có bao nhiêu dòng trước và sau kết quả:

  • -A (sau)
  • -B (trước)
  • -C (bối cảnh [trước + sau])

Vì vậy, trong trường hợp của bạn, bạn cần -A:

YOUR_COMMAND |grep -A NUMBER YOURDOMAIN

lệnh trên in NUMBERcác dòng sau YOURDOMAINtrong tập tin.


Tuy nhiên, xin lưu ý rằng đây là phần mở rộng GNU. Nếu bạn đang dùng Linux, bạn grepchắc chắn có tùy chọn này. Nếu bạn không, bạn nên kiểm tra.
Leonid

9

Hãy thử chuyển số dòng ngữ cảnh sang grep.

| grep -C 5

sẽ in 5 dòng trước và sau trận đấu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.