¿Cómo puedo cambiar el nombre de todos * .txt en un directorio a archivos * .csv en el terminal (Mavericks)? Intenté seguir dentro del directorio:
mv *.txt *.csv
¿Cómo puedo cambiar el nombre de todos * .txt en un directorio a archivos * .csv en el terminal (Mavericks)? Intenté seguir dentro del directorio:
mv *.txt *.csv
Debes recorrer todos los archivos
for f in *.txt; do
mv "$f" "${f%.txt}.csv"
done
Si tiene archivos con nombres que comiencen con .
, es posible que tenga que ejecutar
for f in *.txt .*.txt; do
[[ -f "$f" ]] && mv "$f" "${f%.txt}.csv"
done
Esto también funciona bien:
# change to the Zsh
zsh
# load the built-in zmv function
autoload -U zmv
# rename the files
zmv '(*).txt' '$1.csv'
ls *.txt |awk '{print "mv "$1" " substr($1,1,(index($1,".txt")))"csv"}' |sh
Explicación del comando:
ls *.txt
lista los archivos que terminan con txt
| awk '{print "mv "$1" " substr($1,1,(index($1,".txt")))"csv"}
imprime el comando que permite cambiar el nombre de los archivos anteriores listados con txt a csv
| sh
ejecuta el comando previamente impreso, por lo tanto, cambia el nombre de los archivos
Nota: si desea enumerar todos los archivos, incluidos los archivos ocultos (aquellos que comienzan con .
), use ls -a *.txt
en su lugar