Zliczanie wystąpień danej litery

0

Witajcie,

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.

1

W ogóle nie tworzysz tablic.

for j in $(echo 'romek i atomek'|sed 's/./&\n/g');
do
    literka[$j]=$(( ${literka[$j]} + 1 ))
done
echo ${#literka[m]}
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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1