awk '/00[7-9]\.|0[1-9][0-9]\./ { # for lines matching the regex split($6, c, /:/) # take the part of field 6 before the colon cs[ c[1] ]++ # and increment the counter for that string } END { # after all lines have been read for (c in cs) { # step through the counters print cs[c], c # and output the count followed by the string # ("," adds a space automatically) } }' filename.log | sort -rn # standard awk doesn't support sorting, sadly
Я по-прежнему поражаюсь количеству людей, которые, по-видимому, считают, что не могут и awk
не sed
могут сопоставлять шаблоны, поэтому им приходится добавлять grep
вызовы.