Listing 1. findwords.sh11935l1.qrk
> $testwords
  fi
  minlength="$(( $minlength + 1 ))"
done
## PART TWO: sort letters for validity filter
pattern="$(echo $1 | sed 's/./&\
/g' | tr '[[:upper:]]' '[[:lower:]]' | sort | fmt | sed 's/ //g')"
for word in $( cat $testwords )
do
  # echo "checking $word for validity"
  simplified="$(echo $word | sed 's/./&\
/g' | tr '[[:upper:]]' '[[:lower:]]' | sort | fmt | sed 's/ //g')"
  ## PART THREE: do all letters of the word appear in the pattern
  #              once and exactly once? Easy way: loop through and
  #              remove each letter as used, then compare end states
  indx=1
  failed=0
  before=$pattern
  while [ $indx -lt ${#simplified} ]
  do
    ltr=${simplified:$indx:1}
    after=$(echo $before | sed "s/$ltr/-/")
    if [ $before = $after ] ; then
      # nothing changed, so we don't have that
      # letter available any more
      if [ $showfails ] ; then
        echo "FAILURE: came close, but can't make $word"
      fi
      failed=1
    else
     before=$after
    fi
    indx=$(( $indx + 1 ))
  done
  if [ $failed -eq 0 ] ; then
    echo "SUCCESS: You can make the word $word"
  fi
done
/bin/rm -f $testwords
exit 0