Tengo una aplicación 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 esta:
mdfind -onlyin . 'kMDItemContentType == com.microsoft.excel.xls'
que encuentra todos los archivos .xls en el directorio de trabajo y debajo.
Realmente me gustaría casarme con los dos, pero parece que no consigo que funcione.
Mi primer pensamiento fue este:
mdfind -onlyin . 'kMDItemContentType == com.microsoft.excel.xls' | xargs -J {} automator -i "{}" ~/Desktop/convert2xlsx.app
pero eso solo convierte el último archivo en los resultados devueltos por mdfind. También probé:
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 de AppleScript para obtener el directorio de la ventana del Finder frontal, una acción de Shell Script para ejecutar el mdfind en ese directorio y luego el Formato de conversión de los archivos de Excel en el resultado de el mdfind. Por lo tanto, el problema resuelto. ¡Hurra! Pero ...
Realmente me gustaría saber dónde me estaba yendo mal en la línea de comandos, ya que estoy haciendo un esfuerzo para aprender Bash y usarlo más. ¿Algún consejo?