Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Hệ điều hành Unix] Lọc syslog theo service

    Cho syslog dạng truyền thống: Mon dd HH:MM:SS host service[PID]: message. Trường service[PID] là token thứ 5, dạng sshd[1234]:. Tên service là phần trước dấu [.

    Cho trước tên service cần lọc ở dòng đầu tiên của input. Các dòng còn lại là log. Hãy in ra các dòng log thuộc service đó, giữ nguyên thứ tự.

    Ví dụ

    Input:

    sshd
    Jun 18 10:00:01 host sshd[111]: accepted
    Jun 18 10:00:02 host cron[222]: job run
    Jun 18 10:00:03 host sshd[333]: closed
    

    Output:

    Jun 18 10:00:01 host sshd[111]: accepted
    Jun 18 10:00:03 host sshd[333]: closed
    
    • Định dạng đầu vào:

      Dòng đầu: tên service cần lọc. Các dòng sau: log syslog (token thứ 5 dạng service[PID]:).

    • Ràng buộc đầu vào:

      1 dòng tên + 0..100000 dòng log.

    • Định dạng đầu ra:

      Các dòng log có service trùng tên ở dòng đầu, nguyên văn, theo thứ tự gốc. Không có thì không in.

    Ví dụ:

    Đầu vào:

    sshd
    Jun 18 10:00:01 host sshd[111]: accepted
    Jun 18 10:00:02 host cron[222]: job run
    Jun 18 10:00:03 host sshd[333]: closed
    

    Đầu ra:

    Jun 18 10:00:01 host sshd[111]: accepted
    Jun 18 10:00:03 host sshd[333]: closed

    Giải thích:

    Dòng đầu chỉ định service `sshd`; in lại các dòng có token thứ 5 là `sshd[...]`.

    Đang tải editor...