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