0 votos

¿Cómo puedo cortar y analizar las rutas de los archivos en las etiquetas?

Estoy usando Etiqueta y Hazel y me gustaría ir recursivamente a través de los archivos en nuestro servidor, obtener sus rutas de acceso y nombres de archivo y analizar todo el asunto en etiquetas para aplicar al archivo. ¿Hay un shell script que pueda hacer esto? Puedo usar Leap de Ironic Software para eliminar las etiquetas de la basura en todo el sistema, pero esto me da un comienzo real en un sistema de etiquetado automático para todos mis archivos.

Básicamente voy a tomar un nombre de archivo como

/Volúmenes/medios de comunicación/Clientela/Stock/Conjuntos comprados/Vintage Bundle/vintage-bundle-7/offset/30_CIRCULAR_VECTOR_TEXTURES/C03.eps

Truncar el /Volumes/media/Clientele/Stock/ de la parte superior, y la extensión del archivo .eps desde el final, entonces cut el resto en etiquetas separadas:

  • Sets comprados
  • Paquete Vintage
  • vintage
  • paquete
  • 7
  • offset
  • 30
  • CIRCULAR
  • VECTOR
  • TEXTURAS
  • C03

...eliminar los espacios iniciales y finales, cambiar a minúsculas, y luego volver a aplicar esas etiquetas al archivo con tag .

Además, también sería útil eliminar del sistema las etiquetas que son sólo números.

Actualización: Necesito hacer esto específicamente:

Hazel maneja la recursividad así que para cada archivo que encuentra:

  • Almacenar el $working_folder y el $filepath
  • cut el $working_folder de la $filepath
  • cut el $result en el _-. <space> , caracteres y almacenar en una lista o matriz
  • recorre en bucle la lista o matriz y sed 's/^[ \t]*//;s/[ \t]*$//' para eliminar los espacios en blanco iniciales y finales (de http://sed.sourceforge.net/sed1line.txt )
  • convertir la matriz en una cadena separada por comas para introducirla en tag -s $comma_separated_tags $filepath

Es que no sé cómo poner eso en formato bash script.

1voto

rpk Puntos 11

Ejecute 'find' desde un directorio root buscando archivos planos (-type f?) y -exec un bash script en cada archivo (o quizás automator).

Parece que necesitarás un poco de 'basename' y 'sed'.

Anexar a una cadena vacía para cada ruta de entrada, y tratarla como una lista para ese archivo. Creo que con 'tag' se puede pasar una lista separada por comas, por lo que se puede anexar una (lidiando con la primera que no tiene coma) o posprocesar usando 'sed'. en el peor de los casos se hace un bucle sobre la cadena de la lista y se ejecuta 'tag' cada vez.

'tag' podría ser lo suficientemente inteligente como para añadir etiquetas que no tiene ya lo que se pasa, de lo contrario la parte superior de la script podría querer rescatar si el archivo ya contiene etiquetas.

No es trivial de escribir, pero si no estás familiarizado con bash, tag y sed sería sería un buen ejercicio de aprendizaje.

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