Quantas vezes o mesmo caractere ocorre duas vezes seguidas

0

Minha tarefa é usar o grep para descobrir quantas vezes o mesmo caractere ocorre duas vezes seguidas.
Eu estava pensando em algo assim, mas não está funcionando

grep '[a-zA-z]{2}' *.txt | wc

Como pode conseguir tal tarefa com o grep?

    
por user3077612 28.04.2014 / 11:00

1 resposta

1

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
    
por 28.04.2014 / 12:02