Em um arquivo de entrada como:
foo baaar
Eu conto 4 ocorrências de um caractere sendo repetido: oo
, <NL><NL>
, aa
e aa
.
Para contar os caracteres repetidos em uma linha, você pode usar a expressão regular perl
-style como (.)(?=)
. Para repetir a nova linha, você pode contar as linhas vazias, exceto se for a primeira linha.
Você pode se aproximar do GNU grep
grep -Po '^$|(.)(?=)' | wc -l
Mas isso contaria a primeira linha vazia, então você poderia removê-la primeiro ou adicionar um xx
nas linhas vazias, exceto a primeira:
sed '1!s/^$/xx/' | grep -Po '(.)(?=)' | wc -l