Kra, há um tempo atrás eu fiz algo do tipo, mas que verificava somente para
uma string. Se vc tomar um texto como sendo um conjunto de strings, funciona
legal. Mas tem o problema de ser bastante lento, pois se utiliza de vários
laços...
Tem a seguinte cara:

VezCarac()
{
    A="$1"
    Tamanho=${#A}
    ((cont=0))
    for ((i=Tamanho-1;i>=0;i--))
    do
        [ "${A:$i:1}" = "$2" ] && ((cont++))
    done
    echo $cont
}

Essa função recebe dois parâmetros: uma string e um caractere. Veja o seu
uso:
*$ VezCarac "Viva o Linux" i*
2

Ou seja, o caractere 'i' aparece suas vezes na string "Viva o Linux".

Tendo um texto, que é um conjunto de linhas, aplique essa função para cada
linha, mas incrementando numa variável, em vez de exibi-la.... Ou não
zerando a variável count, como eu fiz no começo da função..

Deixo claro que esta é uma solução ruim e lenta. Muito lenta. Mas como eu
sou um burro em se tratando e=de expressões regulares (sed, etc) e como já
conheço um pouco de outras linguagens, procuro utilizar isto para resolver
os problemas que aparecem...

Falow;...


[As partes desta mensagem que não continham texto foram removidas]

Responder a