Awk solução:
awk '/robot/{
if (r){ printf "%s : %d\n", r, c; c=0; delete a }
r = $1 OFS $2;
}
/drive/ && !a[$3]++{ c++ }
END{ printf "%s : %d\n", r, c }' file
-
r = $1 OFS $2- "robô" nome -
delete a- exclui todos os elementos da matriza. (A seguinte declaração fornece uma maneira portátil mas não óbvia de limpar uma matriz:split("", array)) -
c++- conta números"drive" únicos para um determinado "robot"
A saída:
robot 0 : 11
robot 1 : 4