cuốn sách gpt4 ai đã làm

Sắp xếp các tệp nhật ký bằng cách sử dụng trường khóa = giá trị dòng lệnh

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 01:15:41 26 4
mua khóa gpt4 Nike

Tôi có vài gigabyte nhật ký và tôi đang cố gắng theo dõi thời gian thực hiện tồi tệ nhất cho một phương thức nhất định, vì vậy tôi đang sử dụng grep để lọc các dòng quan trọng

$ grep "m=a" /var/log/syslog* 
Ngày 12 tháng 9 05:14:00 hosting1[716]: 2018-09-12 05:14:00.076 [MessageBroker-2] INF 1 com.acme m=a h_status=success, h_time=51, msg=some tin nhắn
Ngày 11 tháng 9 20:00:00 hosting1[716]: 2018-09-11 20:00:00.389 [MessageBroker-2] INF 1 com.acme m=a h_status=success, h_time=54, msg=some tin nhắn
Ngày 12 tháng 9 04:42:00 hosting1[716]: 2018-09-12 04:42:00.682 [MessageBroker-2] INF 1 com.acme m=a h_status=success, h_time=77, msg=some tin nhắn
Ngày 12 tháng 9 05:15:02 Host1[716]: 2018-09-12 05:15:02.536 [Test worker] INF 2 com.acme m=a h_status=success, h_time=8, msg=some message

Bây giờ tôi muốn sắp xếp file này theo thứ tự desc để lấy file có giá trị cao nhất h_thời gian Hàng giá trị trường. Tôi đã thử sử dụng tính năng sắp xếp để thực hiện việc này nhưng không thành công vì tôi không biết cách trích xuất giá trị trường h_time.

Tôi đã tìm kiếm cách sử dụng dấu phân cách tùy chỉnh để xác định các trường tùy chỉnh bằng cách sắp xếp và tìm thấy cái này cái nàycái nàyTrả lời, không thành công.

Làm cách nào tôi có thể sử dụng một số công cụ dòng lệnh để sắp xếp các hàng này theo thứ tự desc theo trường h_time bằng cú pháp đơn giản nhất có thể?

câu trả lời hay nhất

Bạn có thể làm điều này. Đầu tiên hãy sử dụng Perl Regex để thay thế và đưa vào các giá trị số như hình bên dưới rồi sắp xếp chúng. Bằng cách này, bạn thậm chí có thể chỉ hiển thị thông tin bạn cần.

perl -pe 's/(.+)(h_time=\d+, )(.+)/\2\1\3/g' log sắp xếp -V

mang lại:

h_time=51, ngày 12 tháng 9 05:14:00 Host1[716]: 2018-09-12 05:14:00.076 [MessageBroker-2] INF 1 com.acme l=35 h_status=success, msg=some tin nhắn
h_time=54, ngày 11 tháng 9 20:00:00 Host1[716]: 2018-09-11 20:00:00.389 [MessageBroker-2] INF 1 com.acme l=35 h_status=success, msg=some tin nhắn
h_time=77, ngày 12 tháng 9 04:42:00 Host1[716]: 2018-09-12 04:42:00.682 [MessageBroker-2] INF 1 com.acme l=35 h_status=success, msg=some tin nhắn
h_time=8, ngày 12 tháng 9 05:15:02 Host1[716]: 2018-09-12 05:15:02.536 [Test worker] INF 2 com.acme l=35 h_status=success, msg=some message

Hoặc nếu bạn chỉ cần một số thông tin:

perl -pe 's/(\w+ \d+ [\d:]+).+\[(.+)].+h_time=(\d+), .+/\3 ms\t\2\t\t \1/g' đăng nhập sắp xếp -V

mang lại:

8 ms Nhân viên kiểm tra ngày 12 tháng 9 05:15:02
51 ms MessageBroker-2 Ngày 12 tháng 9 05:14:00
54 ms MessageBroker-2 Ngày 11 tháng 9 20:00:00
77 ms MessageBroker-2 Ngày 12 tháng 9 04:42:00

Về linux - Sắp xếp tệp nhật ký bằng trường khóa = giá trị dòng lệnh, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/52288954/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress