== The problem == To run a command which outputs tabular text data where you'd like to sort on a column but leave the header row(s) at the top. == The solution (well, a solution) == I asked the GNU coreutils guys here http://lists.gnu.org/archive/html/coreutils/2014-11/msg00018.html but also discussed earlier here http://lists.gnu.org/archive/html/coreutils/2013-01/msg00034.html with a workaround using sed with option: {{{ -u, --unbuffered : load minimal amounts of data from the input files and flush the output buffers more often }}} This work-around is non-portable depending on your sed, but if it does work it's not much typing and works: Given a command with 3 header rows, and a 4th numeric column which you'd like to sort descending: {{{ my_command | ( sed -u 3q && sort -n -r -k 4 ) }}} Or a working example - say I want to watch a mysql server using {{{mysqladmin processlist}}}, skipping sleeping threads, and sorting by longest running-time descending: {{{ $ watch -n 5 'mysqladmin processlist | grep -v Sleep | ( sed -u 3q && sort -r -n -k 12 )' }}}