1 votos

Agregar los nombres de la carpeta principal a los nombres de archivo de imagen en Automator

Tengo esta estructura de archivo. Yo quería usar el nombre de archivo de imagen anexa con los nombres de carpeta principal.

Antes:

├── ak
│   ├── adak
│   │   ├── Hello\ World456
│   │   ├── cup-printing
│   │   │   └── Tshirt-printing.jpg
│   │   ├── hello-\ world789
│   │   ├── hello-world79
│   │   └── tshirt\ printing
│   │       └── Tshirt-printing.jpg
│   ├── akhiok
│   │   ├── Hello\ World456
│   │   ├── cup-printing
│   │   │   └── Tshirt-printing.jpg
│   │   ├── hello-\ world789
│   │   ├── hello-world79
│   │   └── tshirt\ printing
│   │       └── Tshirt-printing.jpg

Aquí los padres los nombres de las carpetas son de ak, adak.

Ak= nombre del estado Adak = nombre de la ciudad.

Después de esto debe ser como esta..

Después de:


├── ak
│   ├── adak
│   │   ├── Hello\ World456
│   │   ├── cup-printing
│   │   │   └── Tshirt-printing-adak-ak.jpg
│   │   ├── hello-\ world789
│   │   ├── hello-world79
│   │   └── tshirt\ printing
│   │       └── Tshirt-printing-adak-ak.jpg
│   ├── akhiok
│   │   ├── Hello\ World456
│   │   ├── cup-printing
│   │   │   └── Tshirt-printing-akhiok-ak.jpg
│   │   ├── hello-\ world789
│   │   ├── hello-world79
│   │   └── tshirt\ printing
│   │       └── Tshirt-printing-akhiok-ak.jpg

Comando de Bash puede ayudar aquí?

En el Automator,

Estoy atascado en la búsqueda de todas las imágenes del archivo de nombre "camiseta" Así que necesito encontrar el cambiar el nombre del archivo a su carpeta principal.

file name rename with parent folder names

1voto

user3439894 Puntos 5883

Dado su ejemplo, y suponiendo que el ejemplo es válido, entonces el ejemplo bash código, que se muestra más abajo, en la que debe trabajar.

El siguiente Automator flujo de trabajo utiliza el Encontrar Buscador de Elementos de acción, como usted lo tiene, pero, a continuación, utiliza un Ejecutar el Shell Script de acción directamente después, como no parece ser una necesidad para un Valor dado de la Variable de acción , como se muestra en su OP.

Al Ejecutar el Shell Script de acción, establecer Pase de entrada: a como argumentos, como se muestra en la imagen de abajo.

Tenga en cuenta que el echo comando es solo para mostrar lo mv comando habría sido ejecutado para cambiar el nombre de los archivos, si no hubiese estado allí. Así que, después de probar y ver que la salida si se formó como quería, quitar el echo de comandos y ejecute el flujo de trabajo de nuevo a la realidad, cambiar el nombre de los archivos de imagen.

Cambie el código en el Ejecutar el Shell Script de acción con el siguiente ejemplo bash código de:

for f in "$@"; do

    dn="$(dirname "$f")"
    fn="$(basename "$f")"
    city="$(awk -F'/' '{print $(NF-2)}'<<<"$f")"
    state="$(awk -F'/' '{print $(NF-3)}'<<<"$f")"

    echo mv "$f" "${dn}/${fn%.*}-${city}-${state}.${fn##*.}"

done

Nota: El ejemplo bash código es sólo eso y no contiene ningún error de manipulación como puede ser apropiado. La responsabilidad recae sobre el usuario para agregar cualquier error de manipulación como puede ser apropiado, necesitaba o quería.


Automator Workflow

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