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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witajcie,
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
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
Offline
To ma być takie zagmatwane, czy ma zliczać.
echo 'romek i atomek' | sed 's/./&\n/g' | sort | uniq -c
Co do skryptu.
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
jawox - full wypas, dzięki stary!
Offline
echo 'romek i atomek' | awk 'gsub(/ /,"") {for (i=1 ; i<=NF ; i++) array[$i]++ } END{ for (char in array) print char, array[char]}' FS=""
Offline
Strony: 1