title: subtle difference in using xargs and xargs -i
body: <p>Why does <code>find . -name "*.xml" | xargs grep FOO</code> returns matchs with filenames, while <code>find . -name "*.xml" | xargs -i -sh -c "grep FOO {}"</code> doesn't?</p>