Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2021-12-17 07:09:58

  numer_inaczej - Użytkownik

numer_inaczej
Użytkownik
Zarejestrowany: 2014-08-15

Zliczanie wystąpień wszystkich liter w tekście

Witajcie,

Kod:

for j in $(echo 'romek i atomek'|sed 's/./&\n/g');
do

        echo literka_$j=[${#literka_j[@]}]="$j"
        for i in "${literka_j[@]}";
        do
                echo "$i"
        done

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.

Offline

 

#2  2021-12-17 10:27:17

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Zliczanie wystąpień wszystkich liter w tekście

Jak rozumiem, chcesz policzyć literki i ustalić np, że literka o wystąpiła dwa razy?

Zainteresuj się dc:
https://riptutorial.com/bash/example/6844/math-using-dc


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2021-12-17 17:16:50

  jawojx - Użytkownik

jawojx
Użytkownik
Zarejestrowany: 2012-10-11

Re: Zliczanie wystąpień wszystkich liter w tekście

To ma być takie zagmatwane, czy ma zliczać.

Kod:

echo 'romek i atomek' | sed 's/./&\n/g'  | sort | uniq -c

Co do skryptu.

Kod:

for j in $(echo 'romek i atomek' | sed 's/./&\n/g' | sort)
do
echo  x literka_$j
done | uniq -c

Edycja: Dodałem "x" (razy), teraz gramatycznie jest bliższe. :)

Ostatnio edytowany przez jawojx (2021-12-17 17:41:25)

Offline

 

#4  2021-12-18 06:09:43

  numer_inaczej - Użytkownik

numer_inaczej
Użytkownik
Zarejestrowany: 2014-08-15

Re: Zliczanie wystąpień wszystkich liter w tekście

jawox - full wypas, dzięki stary!

Offline

 

#5  2021-12-18 19:20:44

  samu - Stały bywalec

samu
Stały bywalec
Skąd: ~/.linux/dug
Zarejestrowany: 2011-06-15

Re: Zliczanie wystąpień wszystkich liter w tekście

Kod:

echo 'romek i atomek' | awk 'gsub(/ /,"") {for (i=1 ; i<=NF ; i++) array[$i]++ } END{ for (char in array) print char, array[char]}' FS=""

https://www.debian.org/logos/button-mini.png

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)