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?