count lines by hour

awk, linux, unix

Solution

This can be done with `uniq`:

$ uniq -w9 -c file       # by hour
      7 Nov 26 08:50:51
$ uniq -w12 -c file      # by minute
      2 Nov 26 08:50:51
      5 Nov 26 08:51:09

`-w` compare no more than the first `n` characters.

`-c` prefix lines by the number of occurrences.

Problem

What would be the command to count how many times we saw certain line by hour or by minute? File: ``` Nov 26 08:50:51 Nov 26 08:50:51 Nov 26 08:51:09 Nov 26 08:51:09 Nov 26 08:51:09 Nov 26 08:51:09 Nov 26 08:51:40 ``` Output I would like to see: by minute: ``` Nov 26 08:50 2 Nov 26 08:51 5 ``` by hour: ``` Nov 26 08 7 ```

Original source