AWK в Linux. Для первого каталога это ваш ответ ... Экстраполируйте, рекурсивно вызывая awk в dir_path, возможно, написав другой awk, который пишет этот точный awk ниже ... и т. Д.
ls dir_path/. | awk -F"." '{print "mv file_name/"$0" dir_path/"$1".new_extension"}' |csh