tee can read the standard input, and write to multiple files, we may leverage this feature so that it writes to multiple processes (instead of files).
tee >(process1) >(process2) >(process3) | process4
>( ) (see process substitution) pretends itself as a write-only file. Everything you write into it, will be passed to the command (as standard input) within its parenthesis.
ls -A | tee >(grep ^[.] > hidden-files) >(grep -v ^[.] > normal-files) | less
So in this example (rather useless though), it will list all the filenames, then send the listing to 3 processes:
grep ^[.] > hidden-files– save hidden filenames to a file.
grep -v ^[.] > normal-files– save non-hidden filenames to another file.
less– display all filenames in a pager.