8 votos

Cambio de nombre de archivos/nombres a granel, cualquier solución más inteligente?

Tengo unos pocos de miles de archivos para cambiar el nombre.

La cosa es que tengo la old file names y new file names como columnas en una hoja de cálculo. Sin cambiar el nombre de ellos, uno por uno. Hay una manera mejor de hacer esto?

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

  • Renombrador de archivos , Esto me permite cambiar el nombre de los archivos especificados a partir de una lista externa .txt. Sin embargo la versión de Prueba limita a 500 elementos. No quiero pagar $20 para este trabajo de forma manual.

    Podría haber instalado en equipos separados de la máquina virtual o aunque.

  • Automator - Obtener los elementos especificados > cambiar nombre >

    No tan eficazmente como pensé que lo haría.

Buscando alguna solución más inteligente. Agradecemos cualquier ayuda

11voto

  • exportación a un archivo CSV: dos columnas, separadas por ; (suponiendo que no hay ; en un nombre de archivo)
  • abra el Terminal
  • cambie a la carpeta que contiene los archivos
  • ejecutar perl -pi -e 's/\r\n/\n/;' LISTOFNAMES.csv a solucionar problemas CRLF
  • ejecutar while IFS=\; read old new; do mv "$old" "$new"; done < LISTOFNAMES.csv

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

PPS: esta Prueba en una carpeta temporal con sólo un par de archivos en primer lugar (y asegúrese de tener una copia de seguridad reciente)

5voto

Hixi Puntos 343

He encontrado esto para ser una de las maneras más sencillas:

  • En una columna de hoja de cálculo, concatenar: "cp oldfilename newfilename" para crear una copia con el nuevo nombre.
    • El uso de "mv oldfilename newfilename" para reemplazar los archivos antiguos, en vez de copiar.
  • Copia esta concatenado columna en un archivo de texto y guardar como rename.sh en la carpeta con los archivos para el nombre.
  • Abre el terminal, vaya a la carpeta con los archivos a ser cambia el nombre y ejecutar bash rename.sh

2voto

Pierre Bernard Puntos 406

Hace un par de años escribí un post en el blog sobre la realización de las masivas operaciones de archivo. El primer paso es copiar la lista de archivos de resultados de búsqueda en una hoja de cálculo. Ya que usted ya tiene la hoja de cálculo, que están muy cerca de tener un script que puede hacer el cambio de nombre para usted.

Supongamos que usted tiene los nombres antiguos en la columna a y los nuevos nombres 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,"""")

Instruir aplicación de hoja de cálculo "de Relleno > Abajo de la columna" C, D y E.

A continuación copiar todos los datos de las filas de las columnas C, D y E. Pegar el texto copiado en un editor de texto. Usted debe obtener la fila de la lectura:

mv "old file name" "new file name"

Este comando mover/renombrar el archivo llamado "viejo nombre de archivo" a "nombre de archivo nuevo". Warpping los nombres de archivo entre comillas dobles permite nombres de archivo contiene espacios.

Si usted está satisfecho con los comandos copiar y pegar el texto completo de la shell en la Terminal.aplicación

El procedimiento es admitedly menos elegante que la de tener una secuencia de comandos de proceso de la hoja de cálculo o CSV. No obstante, tiene la ventaja de conseguir una oportunidad de comprobar los comandos antes de ejecutarlos. Cuando se trabaja a partir de los resultados de la búsqueda, usted puede conseguir fácilmente los valores de otras columnas (por ejemplo, fecha de modificación, las dimensiones de la imagen, etc.) y el trabajo de estos en los nuevos nombres de archivo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X