2012-04-24 36 views
15

Cho phép nói rằng tôi có hàng triệu gói để xem xét và tôi muốn xem số lần gói được gửi đến một số cổng nhất định.Làm cách nào để in số lượng kết quả trùng khớp duy nhất bằng grep?

Dưới đây là một số các gói:

10:27:46.227407 IP 85.130.236.26.54156 > 139.91.133.120.60679: tcp 0 
10:27:46.337038 IP 211.142.173.14.80 > 139.91.138.125.56163: tcp 0 
10:27:46.511241 IP 211.49.224.217.3389 > 139.91.131.47.6973: tcp 0 

Tôi muốn xem xét thông qua số cổng 2 ở đây vậy:

60679, 53.163, 6973, vv

Vì vậy, tôi có thể sử dụng:

grep -c '\.80:' output.txt 

Để đếm tất cả các lần cổng 80 được sử dụng. Nhưng có cách nào để nó hiển thị tất cả các cổng đã được sử dụng và bao nhiêu lần nó được tìm thấy trong tập tin này. Một cái gì đó như thế này và thích hợp hơn được sắp xếp để tôi có thể nhìn thấy cổng nào được sử dụng thường xuyên nhất:

.80: - 54513 
.110: - 12334 
.445: - 412 

Trả lời

33

Xem uniq -c. Bạn sẽ muốn rút ra các bit bạn muốn, sắp xếp kết quả, đường ống thông qua uniq, sắp xếp đầu ra. Một cái gì đó giống như có lẽ đây:

egrep '\.[0-9]+:' output.txt | sort | uniq -c | sort -nr 

Làm rõ: Tôi đã sử dụng grep ở đây vì nó không rõ ràng những gì định dạng output.txt của bạn trông như thế nào, nhưng bạn sẽ muốn thực sự cắt bỏ các bit số cổng, có lẽ qua cut hoặc awk.

Edit: Để có được cổng, bạn có thể cắt một lần vào một thời gian và sau đó một lần nữa vào một dấu hai chấm: (. Hoặc bất kỳ một trong hàng tá những cách khác để thực hiện được điều tương tự)

cut -d. -f10 < output.txt | cut -d: -f1 

Đó chí cung cấp cho bạn một danh sách các cổng chưa được phân loại. Sau đó:

cut -d. -f10 < output.txt | cut -d: -f1 | sort | uniq -c | sort -nr 
+0

Cảm ơn sự trợ giúp. Nhưng tôi đang gặp rắc rối với việc cắt giảm. Có cách nào để cắt chỉ sử dụng biểu thức chính quy không? Bởi vì số cổng không nằm trong cùng một cột và khoảng cách mỗi lần. – Dragonfly

+0

Cắt không sử dụng regex. Chỉnh sửa câu hỏi của bạn và thêm một vài dòng ví dụ để chúng tôi có thể thấy định dạng. –

+0

Ok tôi đã chỉnh sửa một số ví dụ. Những gì bạn sẽ khuyên tôi sử dụng sau đó? – Dragonfly

Các vấn đề liên quan