Đọc tệp nhật ký giữa hai ngày


7

Tôi phải đọc tệp nhật ký giữa và câu hỏi của tôi là làm thế nào để chỉ có văn bản trong tệp có giữa hai ngày sử dụng lệnh unix? Mỗi dòng chứa ngày và tôi muốn lấy văn bản trong tệp có ngày bằng hoặc lớn hơn ngày TỪ và thấp hơn hoặc bằng ngày TO.
Định dạng của ngày là 13/05/23 01:58.
Ngày thứ hai là một ví dụ 13/05/13 07:50. Thí dụ

13:41:55,110  INFO HellowordlsThis text is generated by me

Là ngày ở đầu dòng? Làm thế nào là dòng được định dạng?
Chris Xuống

Ngày là lúc bắt đầu của dòng. Ở đâu đó chỉ không có ngày đầy đủ (hh: mm: ss). Tôi đã cập nhật nội dung câu hỏi. Xin vui lòng xem ví dụ.
Jordan Borisov

Tất cả mọi thứ bạn muốn đã có trong bài đăng này: stackoverflow.com/questions/7706095/ cấp
slm

Câu trả lời:


14

Vì ngày ở trong một định dạng trong đó thứ tự thời gian giống như thứ tự từ vựng, bạn có thể làm:

awk '$0 >= "13/05/13 07:50" && $0 <= "13/05/23 01:58"'

(giả sử dấu thời gian ở đầu mỗi dòng)


2
Bạn cũng có thể sử dụng các mẫu phạm vi của awk: gnu.org/software/gawk/manual/html_node/Ranges.html Eg awk '/^May 24 04/,/^May 24 05/'(đối với các thông báo định dạng syslog). Điều này có ngữ nghĩa hơi khác với câu trả lời của Stephane, nhưng có thể gọn hơn.
CLF

2
@CLF và yêu cầu các dòng phải theo thứ tự thời gian và có dòng nhật ký vào cả hai ngày đó.
Stéphane Chazelas
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.