I find it weird that I did not find a ready made script for this immediately through a google search. So this is what I arrived at after some digging:
#!/usr/bin/env bash read input str="$(echo $input | tr '[:upper:]' '[:lower:]')" printf ${str// /_}
Use it with stdin:
echo "Underscore Me" | underscore underscore_me
I use this in TextMate when I need to convert normal english string/text into a parameter/key.