Vypsat nejcetnejsi slova tak tezke nebylo: cat lorem | tr 'A-Z' 'a-z' | tr -s ' .,' '\n' | sort | uniq -c | sort -n -r >slova cat slova | head | sed 's/^ *//' >deset ulozi do souboru 'deset' deset nejcetnejsich slov ve formatu "cetnost slovo". Mezery na zacatku z uniq vykousne posledni sed, tr zajisti, ze vsechna slova budou malymi pismeny (tedy pro nas nebudou rozdilna slova "Lorem" a "lorem"), druhe tr pak rozdeli jednotliva slova na zvlastni radky a parametr -s zajisti, ze nam nevzniknou prazdne radky, ktere bychom pak museli ruzne kompensovat. cat deset tedy splni prvni cast ulohy. Podil uz je trosicku vic tricky - musime si automaticky vygenerovat a pak vyhodnotit aritmeticky vyraz, ktery spocte ten spravny prumer: cat deset | cut -d ' ' -f 1 | tr '\n' + >soucet nam vyrobi soubor ve formatu 10+8+4+3+ coz uz vypada nadejne - to plus navic na konci kompensujeme tim, ze pri dosazeni do vyrazu hned za `cat soucet` pripiseme nulu: echo $(( (`cat soucet` 0) * 100 / `cat slova | wc -l` )) Vsimnete si, ze nejdriv vynasobim soucet stem a pak teprve delim celkovym poctem slov. Rozmyslete si (a vyzkousejte), jaky by byl rozdil oproti tomu, kdybych nejdrive delil a pak teprve nasobil stem. Samozrejme, ze jiz brzy zvladnete i elegantnejsi reseni nez autogenerovani aritmetickych vyrazu, napriklad jde tohle snadno vyresit pomoci cyklu. Toto reseni je ale cenne i tim, ze Vam nabidne trosku jinou perspektivu a mozna inspiraci na rychle a elegantni vyreseni nekterych uloh bez pouziti cyklu, a obcas muze byt takovyto zpusob reseni i vyrazne efektivnejsi a rychlejsi.