Você pode usar cut para dividir os caracteres em que está interessado e, em seguida, sort e uniq -c para contar quantas vezes as diferentes datas aparecem:
$ < input cut -c1-6 |sort |uniq -c
3 Jan 2
4 Jan 3
Ou use awk se você for especial sobre o formato de saída:
$ awk '{a[substr($0, 1, 6)] += 1} END { for (x in a) printf "%s : %d\n", x, a[x] }' < x | sort
Jan 2 : 3
Jan 3 : 4
O primeiro bloco usa um array associativo para contar quantas vezes cada data aparece, o fim do bloco END apenas imprime as datas e suas contagens. sort a saída depois, já que não há garantia sobre a ordem em que as chaves saem da matriz.