Something like find . -name *.txt -print > text_file_list
Then you have to do a loop to process each line in text_file_list and
extract the base name (probably with yacc), without the .txt, append .text and use mv to move the file to the new name.
You will need some sort of batch renamer program.
Like irfan view can do it for images in windows platform.
Try to google some batch extension renamer for linux
Use a program called pyrenamer https://launchpad.net/pyrenamer