Many text-based commands will use block buffering with their output. This makes it efficient to process very large text files, but it can cause serious lag/"stuttering" when interactively watching the output of a pipeline of commands.
grep --line-buffered
perl -e '$|=1; <your code goes here>'
awk '{ print $0; fflush(stdout) }'
sed -u
tail
— tail never uses line buffering
tee
— I'm not sure? There's lots of discussion here.
Add-on programs that sometimes work: