Turns out whatever I'm doing doesn't work right when the input is a pipe (though input redirection from a file is okay), so in addition to being incomplete, this patch is actually buggy.  Will work on it, but still hoping to hear opinions.

~mark

On 6/18/24 21:49, Mark E. Shoulson wrote:
Hi. New here, to post a patch which I hope will inspire someone to do a better job.

I can't really believe that for all these years, we still so very, very often run sort(1) and pipe it through head(1) or tail(1), because we only want the top/bottom 20 lines or whatever.  That means we're sorting a potentially gigantic list of lines but not caring about most of the information.

I'm attaching a patch that adds `--head` and `--tail` options to sort(1), so you say `sort --head=20` (which is equivalent to saying `sort --tail=-20` and vice-versa).  I've worked this into sort(1) VERY VERY BADLY, I'm sorry to say, but maybe someone with better familiarity with the code can do it better.  Basically, I'm special-casing out the situation when --head is active and doing my own thing with it, and then lying to the rest of the program about it.  But it works, anyway.

Reply via email to