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;' -e '<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: