Целое число времен каждый IP-адрес появляется в файле журнала

Можно отключить это путем движения в Параметры настройки системы-> раскладка клавиатуры-> опция. под разной совместимостью опции проверяют "специальные ключи Ctrl+Alt + <ключ>, обработанный в сервере".

Я проверил это, и Ubuntu не ловит комбинации Ctrl+Alt +.... но все еще идея не ловит Ctrl+Alt+F7, и проблема все еще выходит!!!.

9
06.03.2014, 03:22
4 ответа
Вы ищете
  • uniq -c
  • Если вывод не по вашему вкусу, его можно легко разобрать и переформатировать.

    Например:

    21
    27.01.2020, 20:04

    uniq действительно кажется более умным решением. Путь awk:

    awk '{ip_count[$0]++}; '\
    'END {for (ip in ip_count) printf "%15s: %d\n",ip,ip_count[ip];}' file
    
    6
    27.01.2020, 20:04

    сначала отсортировать файл, а затем получить счет по уникальному -c

    sort filename | uniq -c

    0
    27.01.2020, 20:04

    Я бы использовал 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 — отличный инструмент для администрирования.

    0
    27.01.2020, 20:04

    Теги

    Похожие вопросы