What is exact difference between piping and redirection?
Where should we use piping and where should we use redirection?
How they internall
I have noticed that pipelining applies to the output of process substitution, but not redirection:
bash-3.2$ echo $'one\ntwo\nthree' | tee >(grep o) | cat > pipe
bash-3.2$ echo $'one\ntwo\nthree' | tee >(grep o) > redirect
bash-3.2$ one
two
bash-3.2$ cat pipe
one
two
three
one
two
bash-3.2$ cat redirect
one
two
three