[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: New sort(1) feature -- sort by length

From: Jim Meyering
Subject: Re: New sort(1) feature -- sort by length
Date: Fri, 24 Jul 2009 11:12:46 +0200

Pádraig Brady wrote:

> Ethan Baldridge wrote:
>> I had a list to sort at work today that needed to be in the format "A B
>> C D E... AA BB CC DD" but sort(1) only returns results as "A AA B BB C
>> CC".
>> So I wrote a patch to add -length-sort as an option. (-l was not taken
>> as a short option so I added that too).
>> Here it is attached as a unified diff. I tested it and it seems to work
>> naturally in conjunction with other operands, so I don't believe there
>> are likely to be problems.
> Thanks for doing that!
> I'm not sure that it belongs in sort though as it's quite specialized.
> Also there is ambiguity in the length of a line.
> I.E. is it bytes, characters or screen cells.
> Also it's quite easy to achieve with existing tools:
> awk '{print length, $0}' <file | sort -n | cut -f2- -d' '

IMHO, this is a decisive argument for not adding the option.
However, I would welcome a paragraph documenting the technique as
an example of how to extend sort.

> What might be better would be to add an option
> to `wc` to get it to prepend various counts to a line
> (words, chars, bytes, cells), which then could be
> sorted and stripped as above.

This is tempting, but I am reluctant to modify wc in this manner.
wc is a fundamental tool, and adding a feature like this would
seem to bring too little value for the impact on the code.
It's easier to say "just use ___" (perl, awk, etc).

reply via email to

[Prev in Thread] Current Thread [Next in Thread]