Advertisement
Guest User

words

a guest
May 24th, 2015
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.79 KB | None | 0 0
  1. #!/bin/bash
  2. declare -A words
  3. IFS=" .,;:-+?!<>=()[]{}\"\\\'|"
  4. declare -l line # kis es nagybetu kozott nem teszunk kulonbseget
  5. while read line;do #szavak elofordulasi gyakrisagat szamolja
  6.    for word in $line;do
  7.      if [ "$word" != "" ];then #IFS valtozo nem default erteke miatt kell
  8.        ((words[$word]++))
  9.      fi
  10.    done
  11. done < words.txt  #ha nincs ilyen file, akkor hozzuk letre
  12.  
  13. maxWordLength=`
  14. for k in "${!words[@]}";do
  15.   echo "$k"
  16. done | wc -L` #leghosszabb szot meghatarozza
  17. maxCountLength=`
  18. for k in "${!words[@]}";do
  19.   echo "${words[$k]}"
  20. done | wc -L` #legnagyobb elofurdulasi szam hosszat hatarozza meg
  21.  
  22. for k in "${!words[@]}";do # tagoltan kiirja a szavak elofordulasi gyakorisagat
  23.   printf "%*s %*d times\n" $maxWordLength "$k" $maxCountLength "${words[$k]}"
  24. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement