1 votos

¿Utilizar Automator para mover archivos a una nueva carpeta basándose en una lista de nombres de archivos?

No estoy seguro de si esto es algo que Automator puede hacer, y realmente apreciaría cualquier indicación.

Estoy trabajando con una carpeta de ~4500 imágenes. Basándome en algunos metadatos que tengo de otra fuente, quiero mover unas mil de esas imágenes a una nueva carpeta (son demasiadas para moverlas a mano). Tengo un archivo csv que incluye los nombres de los archivos a mover, pero no puedo averiguar cómo hacer que Automator me permita establecer la lista como criterio. Los nombres de los archivos son todos asignados al azar cadenas de 32 números y letras, así que no creo que esto es una cuestión de filtrado.

¿Cómo podría mover ~1000 archivos de una carpeta a otra utilizando un csv/lista? Tal vez es posible que Applescript es una buena opción, pero no puedo decir que he mirado allí en absoluto, así que estaría empezando desde cero.

0voto

David Anderson Puntos 2189

Para mover los archivos a otra carpeta no sería necesario utilizar el Automator o el Apple script. Usted podría lograr esto mediante la introducción de comandos en una ventana de la aplicación Terminal.

Ejemplo 1

A continuación se muestra el contenido de un archivo llamado list.csv . Este archivo sólo contiene los nombres de los archivos que se van a mover a otra carpeta.

file001,file002,file003
file004,file005
file006

Desde bash El siguiente comando movería los archivos a una carpeta llamada MyTarget .

(IFS=,; while read -u 5 -a w; do for j in ${w[@]}; do mv -i "$j" MyTarget; done; done)5<list.csv

Desde zsh el comando cambiaría a lo siguiente.

(IFS=,; while read -u 5 -A w; do for j in ${w[@]}; do mv -i "$j" MyTarget; done; done)5<list.csv

Nota: Puedes hacer un simulacro precediendo al mv con echo . Para zsh el comando aparecería como se muestra a continuación.

(IFS=,; while read -u 5 -A w; do for j in ${w[@]}; do echo mv -i "$j" MyTarget; done; done)5<list.csv

Este comando produciría la siguiente salida.

mv -i file001 MyTarget
mv -i file002 MyTarget
mv -i file003 MyTarget
mv -i file004 MyTarget
mv -i file005 MyTarget
mv -i file006 MyTarget

Ejemplo 2

A continuación se muestra el contenido de un archivo llamado list.csv . Aquí, el nombre de un archivo a mover es el segundo elemento de cada línea.

black,file001,yes,5
brown,file002,no,6
red,file003,no,7
orange,file004,yes,30
yellow,file005,no,3
green,file006,no,99

Desde bash El siguiente comando movería los archivos a una carpeta llamada MyTarget .

(IFS=,; while read -u 5 -a w; do mv -i "${w[1]}" MyTarget; done)5<list.csv

Desde zsh el comando cambiaría a lo siguiente.

(IFS=,; while read -u 5 -A w; do mv -i "${w[2]}" MyTarget; done)5<list.csv

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