Я бы использовал Python. На каждом Linux-ststem в настоящее время установлен python2.
Добавьте каждый IP-адрес в dict (ассоциативный массив) в виде пар ключ = значение, т. Е. {"12.34.56.78": 1, "87.76.43.21": 3}.
Вы 'проверяете' IP-адрес в качестве ключа и увеличиваете значение на 1. Если вы используете defaultdict ("ip"), если ключ не существует, он создается со значением по умолчанию, равным 0. Если ключ существует уже defaultdict ничего не делает. Значение увеличивается на следующей строке.
#!/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")
выходной файл:
cat out.txt
27.33.65.2 = 2
58.161.137.7 = 1
121.50.198.5 = 1
184.173.187.1 = 3
Я знаю, что вы искали решение для командной строки, но, как вы видите, это элегантно отформатированный дисплей, который занимал всего около десятка строк или около того. Python - отличный инструмент для администрирования.