Привет!
Отсортировал логи по времени и мак адресам, список получился внушительный. По времени первая колонка сортирует заходы по mac адресам сверху вниз (ну как надо в общем).
Хочу оставить только время захода и время последнего соединения.
Выглядит это так:
grep 'subscribe' sml.log |awk -F/ '{print $1 $2 $3 "Mac: " $5}' | sed 's/.*\[//; s/+0300\]."GET//; /HTTP/d' | sort -k2
16Aug2018:18:12:10 Mac: 00:02:9B:A0:35:5C
16Aug2018:18:12:20 Mac: 00:02:9B:A0:35:5C
16Aug2018:18:12:30 Mac: 00:02:9B:A0:35:5C
16Aug2018:18:12:40 Mac: 00:02:9B:A0:35:5C
16Aug2018:18:12:50 Mac: 00:02:9B:A0:35:5C
16Aug2018:18:13:01 Mac: 00:02:9B:A0:35:5C
16Aug2018:18:13:11 Mac: 00:02:9B:A0:35:5C
16Aug2018:18:13:21 Mac: 00:02:9B:A0:35:5C
16Aug2018:06:27:26 Mac: 00:02:9B:A0:36:25
16Aug2018:06:27:37 Mac: 00:02:9B:A0:36:25
16Aug2018:06:27:48 Mac: 00:02:9B:A0:36:25
16Aug2018:06:27:58 Mac: 00:02:9B:A0:36:25
Пытаюсь фильтровать с помощью awk (дописываю после пайпы):
awk '!($2 in a) {if (a[$2] == a[$2]++)a[$2]--; print; a[$2]; print ; a[$2]++; print; print "===="}'
но фигня какая-то..
====
16Aug2018:06:27:34 E4:27:71:70:42:42
16Aug2018:06:27:34 E4:27:71:70:42:42
16Aug2018:06:27:34 E4:27:71:70:42:42
====
16Aug2018:06:27:26 F4:27:71:1F:09:FF
16Aug2018:06:27:26 F4:27:71:1F:09:FF
16Aug2018:06:27:26 F4:27:71:1F:09:FF
====
одинаковые первые строки пишет, тоже самое что и print $0 в awk. Посоветуйте как правильно решить по логике, что -то не так делаю явно!