Ho un'app Automator chiamata convert2xlsx.app che accetta gli input dei file e avvia l'azione Converti formato di file Excel per convertire i file .xls in file .xlsx. Posso chiamarlo dalla riga di comando per un file in questo modo:
automator -i "some file name.xls" ~/Desktop/convert2xlsx.app
e funziona perfettamente.
Ho anche una query della riga di comando come questa:
mdfind -onlyin . 'kMDItemContentType == com.microsoft.excel.xls'
che trova tutti i file .xls nella directory di lavoro e di seguito.
Mi piacerebbe davvero sposare i due insieme ma non riesco a farlo funzionare.
Il mio primo pensiero è stato questo:
mdfind -onlyin . 'kMDItemContentType == com.microsoft.excel.xls' | xargs -J {} automator -i "{}" ~/Desktop/convert2xlsx.app
ma converte solo l'ultimo file nei risultati restituiti da mdfind. Ho anche provato:
mdfind -onlyin . 'kMDItemContentType == com.microsoft.excel.xls' -0 | xargs -0 -J {} automator -i "{}" ~/Desktop/convert2xlsx.app
con lo stesso risultato.
Sono riuscito a metterlo insieme in Automator, usando un'azione AppleScript per ottenere la directory della finestra del Finder frontale, un'azione Shell Script per eseguire mdfind in quella directory e quindi il formato di conversione dei file Excel sul risultato di il mdfind. Quindi, problema risolto. Sìì! Ma ...
Mi piacerebbe davvero sapere dove stavo sbagliando sulla riga di comando, poiché sto facendo uno sforzo per imparare lo scripting di Bash e usarlo di più. Qualche consiglio?