Renombrar archivos en Bash con expresiones regulares
- abril 7, 2013
A veces es necesario cambiar el nombre de los archivos siguiendo algunos patrones. Hacer esta tarea manualmente es tedioso si tiene millas de archivos. Por esta razón, uso el comando rename (renombrar).
A continuación algunas opciones para hacerlo de manera sencilla y práctica, según casos frecuentes:
1. Depuración y vista previa:
$ renombrar archivos 'EXPRESIÓN REGULAR' -n
Algunas de las expresiones más comunes que uso son:
2. Convertir el nombre del archivo a minúsculas:
$renombrar 'y/AZ/az/' *
3. Añadir prefijo el nombre del archivo:
$renombrar 's//texto-/' *.mp3 Eliminar sufijo: [código lang='bash'] $renombrar 's/ - texto//' *.mp3
4. Renombrar dinámico
renombrar 's/(.*?)-(.*).mp3/$2-$1.mp3/' *.mp3
Más información en el manual de cambio de nombre:
$man renombrar NOMBRE renombrar - cambia el nombre de varios archivos SÍNOPSIS renombrar [-v] [-n] [-f] perlexpr [archivos] DESCRIPCIÓN "renombrar" cambia el nombre de los archivos proporcionados de acuerdo con la regla especificada como primer argumento. los El argumento perlexpr es una expresión de Perl que se espera que modifique la cadena $_ en Perl durante al menos algunos de los nombres de archivo especificados. Si un nombre de archivo dado no es modificado por la expresión, no será renombrado Si no se proporcionan nombres de archivo en la línea de comando, los nombres de archivo se leerán a través de la entrada estándar. Por ejemplo, para cambiar el nombre de todos los archivos que coincidan con "*.bak" para eliminar la extensión, podría decir renombrar 's/\.bak$//' *.bak Para traducir nombres en mayúsculas a minúsculas, usaría cambiar el nombre de 'y/AZ/az/' * OPCIONES -v, --verbose Verbose: imprime los nombres de los archivos renombrados con éxito. -n, --no-acto Sin acción: muestra qué archivos se habrían renombrado. -f, --fuerza Forzar: sobrescribir archivos existentes. AMBIENTE No se utilizan variables de entorno.