Tôi sẽ sử dụng trăn. Mọi ststem linux hiện nay đều đã cài đặt python2.
Thêm từng địa chỉ IP vào một dict (mảng kết hợp) dưới dạng cặp key = value tức là {"12.34.56.78": 1, "87.76.43.21": 3}.
Bạn 'xác minh' địa chỉ IP làm khóa và tăng giá trị lên 1. Nếu bạn sử dụng defaultdict ("ip"), nếu khóa không tồn tại, nó được tạo với giá trị mặc định là 0. Nếu khóa tồn tại đã, defaultdict không làm gì cả. Giá trị được tăng lên trên dòng tiếp theo.
#!/usr/bin/python2
infile = open("file.txt","r")
iplist = {} # create an empty dict
for line in infile:
line = line.strip() # remove newline.
if line: # if not a blank line.
iplist.setdefault(line, 0) # check for ip and add with default value of 0
iplist[line] += 1 # increment
outfile = open("out.txt","w") #open output file
for key in iplist.keys():
line = "%-15s = %s" % (key, iplist[key])
print line # print uf desired.
outfile.write(line + "\n")
tập tin ra:
cat out.txt
27.33.65.2 = 2
58.161.137.7 = 1
121.50.198.5 = 1
184.173.187.1 = 3
Tôi biết bạn đang tìm kiếm một giải pháp dòng lệnh, nhưng như bạn có thể thấy đó là một màn hình được định dạng thanh lịch chỉ mất hàng tá dòng. Python là một công cụ tuyệt vời để quản trị.