Rate is a simple little program I wrote that copies data from stdin to stdout while outputting status information about the transfer rate to stderr.
You can download the code and the man page if you happen to want someting similar. Here's the man page (from man2html) :
NAME
rate - passes data from stdin to stdout outputing status
information on stderr.
SYNOPSIS
rate [-b blocksize] [-o output size]
DESCRIPTION
rate
Simple passes data from stdin to stdout while outputting
status information on stderr.
The status information is of the form X Y (Z) where X is the
number of bytes passed through so far, Y is the average
transfer rate, and Z is the transfer rate of the 'output
size' chunk most recently processed.
This exists because I use "dd | nc" and "nc | dd" to
transfer disk image chunks between PCs in preperation for
games nights. It's annoying not to be able to see how far
the transfer is, so now I can by using "dd | rate | nc" and
"nc | rate | dd".
OPTIONS
-b blocksize Specifies the size of the buffer used to store
reads from stdin before writing to stdout. Is the size of
the read(2) call the result of which is then written to
stdout using multuple write(2) calls if necessary. Defaults
to 8192 bytes.
-o output size Specifies the number of bytes to read between
making status outputs to stdout (note, that more bytes may
actually be read due to the relative sizes of blocksize and
output size as well the amount of data actually read by each
read call). Defaults to 10 times the blocksize.
BUGS
I'm sure there are many, but I haven't come across them yet.