This question already has an answer here:
I need to substitute output of
find command to another command to process every found file, e.g.:
mdls `find ~/target_dir/ -iname '*some*' -depth 1`
mdls is a command in OS X which get metadata attributes of the specified file. It doesn't support piping thus
find ... | mdls fails.)
The command above works fine, but expectedly fails on files with spaces in name. I thought that adding quotes via
sed helps with it:
$ find ~/target_dir/ -iname '*some*' -depth 1 | sed 's/\(.*\)/"\1"/' "/Users/shau-kote/target_dir//secondsomefile" "/Users/shau-kote/target_dir//some file with spaces in name" "/Users/shau-kote/target_dir//somefile"
Alack, now my
mdls command fails on all files:
$ mdls `find ~/target_dir/ -iname '*some*' -depth 1 | sed 's/\(.*\)/"\1"/'` "/Users/shau-kote/target_dir//secondsomefile": could not find "/Users/shau-kote/target_dir//secondsomefile".
How can I fix it so as
mdls do correctly process all file names from
P.S. I'm not sure is it important or self-evident, but