0 votos

¿mdfind canalizado a automator?

Tengo una aplicación de Automator llamada convert2xlsx.app que toma entradas de archivos y ejecuta la acción Convertir formato de archivos de Excel para convertir archivos .xls en archivos .xlsx. Puedo llamarlo desde la línea de comandos para un archivo así:

automator -i "some file name.xls" ~/Desktop/convert2xlsx.app

y funciona bien.

También tengo una consulta de línea de comandos como ésta:

mdfind -onlyin . 'kMDItemContentType == com.microsoft.excel.xls'

que encuentra todos los archivos .xls en el directorio de trabajo y por debajo.

Me gustaría mucho casar los dos juntos pero no consigo que funcione.

Lo primero que pensé fue esto:

mdfind -onlyin . 'kMDItemContentType == com.microsoft.excel.xls' | xargs -J {} automator -i "{}" ~/Desktop/convert2xlsx.app

pero eso sólo convierte el último archivo en los resultados devueltos por mdfind. También he probado:

mdfind -onlyin . 'kMDItemContentType == com.microsoft.excel.xls' -0 | xargs -0 -J {} automator -i "{}" ~/Desktop/convert2xlsx.app

con el mismo resultado.

Pude armarlo en Automator, usando una acción AppleScript para obtener el directorio de la ventana frontal del Finder, una acción Shell script para ejecutar el mdfind en ese directorio y luego el Convert Format of Excel Files en el resultado del mdfind. Así que, problema resuelto. Sí. Pero...

Realmente me gustaría saber en qué me equivoqué en la línea de comandos, ya que estoy haciendo un esfuerzo por aprender el scripting de Bash y usarlo más. ¿Algún consejo?

1voto

Malik hassan Puntos 16

Como prueba he creado una aplicación de Automator que sólo copia los elementos del buscador a un directorio. "Acción "Copiar elementos del buscador

Y luego usó

theFind=`mdfind -onlyin . 'kMDItemContentType == com.microsoft.excel.xls'`;automator -i "$theFind"  /Users/UserName/Desktop/testF/test2.app

Los backpicks "`" aseguran que el resultado del primer comando se coloque en la variable theFind y luego podemos pasar theFind en el siguiente comando llamándolo con "$theFind". Las comillas que lo rodean también aseguran que cualquier texto que se pase esté entre comillas.

A la aplicación Automator se le pasa una lista de Alias.

{alias "disco duro:Usuarios:Nombre de usuario:Dropbox:Kit:Unidad2.xls", alias "disco duro drive:Users:Username:Dropbox:Kit:Unit3.xls"}

Así que, dependiendo de sus otras acciones, es posible que tenga que convertirlas en rutas POSIX.

{"/Usuarios/nombre de usuario/Dropbox/Kit/Unidad2.xls", "/Usuarios/nombre de usuario/Dropbox/Kit/Unidad3.xls"}

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