GNU sort
's -h
option
I only recently became aware of
GNU sort's -h
option, which strikes me as a beautiful encapsulation of
everything (both good and bad) that people attribute to GNU programs and
their profusion of options.
GNU sort's -h
is like -n
(sort numerically) except that it sorts
numerically for GNU's 'humane' numbers, as produced by (for example) GNU
du's -h
option. This leads naturally to a variant of a little script
that I've already talked about:
du -h | sort -hr | less
On the one hand, -h
is clearly useful in both commands. Humane numbers
are a lot easier to read and grasp than plain numbers, and now GNU sort
will order them correctly for you. On the other hand you can see the
need for a -h
argument to sort as evidence of an intrinsic problem
with du -h
; in this view, GNU is piling hack on top of hack. The
arguable Unix way might be a general hum
command that humanized all
numbers (or specific columns of numbers if you wanted); that would make
the example into 'du | sort -nr | hum | less
', which creates a
general tool at the price of making people add an extra command to their
pipelines.
I don't have any particular view on whether GNU sort's -h
option is
Unixly wrong or not. I do think that it's (seductively) convenient, and
now that I've become aware of it it's probably going to work its way
into various things I do.
(This could spark a great debate on what the true Unix way is, but I'm not going to touch that one right now.)
|
|