This link is relevant What's the difference between substitution and piping to bash but I am not quite understanding everything that is being said.
What is the difference between piping command1 | command2
versus expanding commands command2 $(command1)
? For example
vi $(find /home | grep xyzzy)
spits results out to vi to edit whereas
find /home | grep xyzzy | vi
doesn't seem to work for me. But I'm not understanding the fundamental difference.
Edit
Other relevant posts
find /home | grep xyzzy | xargs -i vi {}
to "fix" this.