Cómo hacer una modificación a varios ficheros a la vez
Por ejemplo, si tienes en un fichero de texto una lista de ficheros a borrar de un repositorio Subversion, entre otros a mantener, esta orden irá recorriendo el fichero línea a línea, eliminando las rutas que contiene:
while read line; do svn del $line; done < lista.txt
Para modificar un URL, dirección de correo, etc en varios ficheros a la vez, esta orden busca y reemplaza «antigua» por «nueva» en todos los ficheros de la extensión indicada (más detalles):
perl -pi -e 's/antigua/nueva/' *.extensión
Cambios de nombre
Como es sabido, para cambiar la codificación del contenido de los ficheros se usa la orden iconv. También se puede cambiar la codificación de los nombres de fichero, por ejemplo de los procedentes de Windows:
for i in *JPG; do convmv --notest -f cp1252 -t UTF-8 "$i"; done
Para convertir los espacios de los nombres de fichero a guiones bajos (subrayados o underscores):
find . -type f -iname "*.JPG" -exec rename "s/ /_/g" {} \;
Para eliminar un prefijo de los nombres de fichero (por ejemplo, si todos empiezan por «Chuggington - » (habría que mirar como hacerlo también en bash):
ksh
for f in *; do mv "$f" "${f#Chuggington\ -\ }"; done