Zliczanie wystąpień danej litery

Zliczanie wystąpień danej litery
NU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 63
0

Witajcie,

Kopiuj
for j in $(echo 'romek i atomek'|sed 's/./&\n/g');
 do
 
         echo literka_$j=[${#literka_j[@]}]="$j"
        
done

Panowie, pojawił się problem ze skryptem bash.
Pętla for interuje po wszystkich literach z zadanego wyrażenia 'romek i atomek'.
Z założenia ma utworzyć tablicę dla każdej z liter i dodawać do niej kolejne litery - by móc później je zliczyć.

Wydaje się, że pracuje - jednak powielone tablice (litery) traktuje tak, jakby wcześniej nie zaszło dane wystąpienie.

Będę wdzięczny za pomoc.

overcq
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 402
1

W ogóle nie tworzysz tablic.

Kopiuj
for j in $(echo 'romek i atomek'|sed 's/./&\n/g');
do
    literka[$j]=$(( ${literka[$j]} + 1 ))
done
echo ${#literka[m]}
NU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 63
0

Jeśli się mylę to proszę naprostuj mnie:

  • iteruję napis 'romek i atomek'
  • tworzę tablicę o z literą iterowaną w nazwie
  • dodaję do jej długości (pobieranej przez rekurencję wyrażoną nawiasem okrągłym) bierzący element

Zupełnie nie mam pojęcia dlaczego przy literze `ś' - występuje problem

Oczywiście dziękuję za odpowiedź. W podanym przeze mnie przykładzie działa bez zarzutu.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.