A quick bash one liner to create and move a set of files in a directory to a sub-directory of the same name:
IFS=$'\n'; for i in `find . -maxdepth 1 -type f`; do echo "$i"; dir=${i%.*}; \ echo "$dir"; mkdir "./$dir"; mv "./$i" ./"$dir"/; done;
If you know a better way please post in the comments :)