ls *.txt |awk '{print "mv "$1" " substr($1,1,(index($1,".txt")))"csv"}' |sh
Command explanation:
ls *.txt
lists files ending with txt
| awk '{print "mv "$1" " substr($1,1,(index($1,".txt")))"csv"}
prints the command that allows to rename the previous files listed with txt to csv
| sh
executes the previously printed command, thus effectively renaming the files
Note: if you want to list all files including hidden files (those starting with .
) use ls -a *.txt
instead