mercredi 31 décembre 2014

mdfind piped to automator?


I have an Automator app called convert2xlsx.app that takes file inputs and runs the Convert Format of Excel Files action to turn .xls files into .xlsx files. I can call it from the command line for one file like so:



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


and it works just fine.


I also have a command-line query like this:



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


that finds all .xls files in the working directory and below.


I would really like to marry the two together but I can't seem to get it to work.


My first thought was this:



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


but that only converts the last file in the results returned by mdfind. I also tried:



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


with the same result.


I was able to piece it together in Automator, using an AppleScript action to get the directory of the front Finder window, a Shell Script action to run the mdfind in that directory and then the Convert Format of Excel Files on the result of the mdfind. So, problem solved. Yay! But...


I would really like to know where I was going wrong on the command line, as I'm making an effort to learn Bash scripting and use it more. Any advice?





Aucun commentaire:

Enregistrer un commentaire