Renombrando archivos / nombres en forma masiva, ¿alguna solución más inteligente?

7

Tengo algunos miles de archivos para cambiar el nombre.

La cosa es que tengo old file names y new file names como columnas en una hoja de cálculo . Sin renombrarlos uno por uno. ¿Hay una mejor manera de hacer esto?

Aprecio cualquier ayuda. He intentado lo siguiente con poca satisfacción:

  • File Renamer : esto me permite cambiar el nombre de los archivos especificados desde una lista externa en .txt. Sin embargo, la versión de prueba limita a 500 artículos. No deseo pagar $ 20 solo por este trabajo manual.

    Podrían haberlos instalado en computadoras separadas o máquinas virtuales.

  • Automator - Obtener elementos específicos > Renombrar >

    No tan eficaz como pensé.

Sólo estoy buscando una solución más inteligente. Agradecemos cualquier ayuda

    
pregunta Pete 26.04.2016 - 15:03

3 respuestas

10
  • exportar a un CSV: dos columnas, separadas por ; (asumiendo que no hay ; en un nombre de archivo)
  • abrir Terminal
  • cambiar a la carpeta que contiene los archivos
  • ejecute perl -pi -e 's/\r\n/\n/;' LISTOFNAMES.csv para solucionar problemas de CRLF
  • ejecuta while IFS=\; read old new; do mv "$old" "$new"; done < LISTOFNAMES.csv

PS: Esto sobrescribirá los archivos existentes si el nuevo nombre ya existe.

PPS: prueba esto en una carpeta temporal con solo unos pocos archivos (y asegúrate de tener una copia de seguridad reciente)

    
respondido por el nohillside 26.04.2016 - 15:13
5

He encontrado que esta es una de las formas más simples:

  • En una columna de hoja de cálculo, concatene: "cp oldfilename newfilename" para crear una copia con el nuevo nombre.
    • Use "mv oldfilename newfilename" para reemplazar los archivos antiguos en lugar de copiar.
  • Copie esta columna concatenada en un archivo de texto y guárdela como rename.sh en la carpeta con los archivos a renombrar.
  • Abra el terminal, navegue a la carpeta con los archivos a ser renombrado y ejecute bash rename.sh
respondido por el Steve 26.04.2016 - 19:35
2

Hace un par de años, escribí una publicación de blog sobre cómo realizar operaciones de archivos en masa . El primer paso fue copiar la lista de archivos de los resultados de búsqueda en una hoja de cálculo. Como ya tiene la hoja de cálculo, está muy cerca de tener un script que puede hacer el cambio de nombre por usted.

Supongamos que tiene nombres antiguos en la columna A y nombres nuevos en la columna B.

Escriba lo siguiente en la primera celda de la columna C:

mv

Escriba lo siguiente en la primera celda de la columna D:

=concatenate("""",A1,"""")

Escriba lo siguiente en la primera celda de la columna E:

=concatenate("""",B1,"""")

Indique a la aplicación de hoja de cálculo que “Rellene > Abajo "columna C, D y E.

Luego copie todas las filas de datos de las columnas C, D y E. Pegue el texto copiado en un editor de texto. Deberías obtener la lectura de la fila:

mv "old file name" "new file name"

Este comando moverá / cambiará el nombre del archivo llamado "nombre de archivo antiguo" a "nombre de archivo nuevo". La deformación de los nombres de archivo entre comillas dobles permite que los nombres de archivo contengan espacios.

Si está satisfecho con los comandos, copie y pegue el texto completo en el shell en Terminal.app

El procedimiento es menos elegante que el hecho de tener un script para procesar su hoja de cálculo o CSV. Sin embargo, tiene la ventaja de que tiene la oportunidad de volver a verificar los comandos antes de ejecutarlos. Cuando trabaje desde los resultados de búsqueda, puede obtener fácilmente valores de otras columnas (por ejemplo, fecha de modificación, dimensiones de la imagen, etc.) y agregarlos a los nuevos nombres de archivo.

    
respondido por el Pierre Bernard 26.04.2016 - 20:41

Lea otras preguntas en las etiquetas