Script / sort question; sort on last field of a line?

Chris F.A. Johnson cfaj-uVmiyxGBW52XDw4h08c5KA at public.gmane.org
Thu May 4 19:00:08 UTC 2006


On Thu, 4 May 2006, Tim Writer wrote:

> Peter <plp-ysDPMY98cNQDDBjDh4tngg at public.gmane.org> writes:
>
>> On Thu, 4 May 2006, Walter Dnes wrote:
>>
>>>  How do I sort on the last (or 2nd last or whatever) field of a line?
>>>
>>>  One awkward possibility involves rewriting the lines backwards,
>>> sorting on what is now the first field, and rewriting the lines
>>> backwards a second time.  I'm not aware of a utility to do write lines
>>> backwards.  I am *NOT* thinking of "tac" which writes the lines
>>> unaltered but reverses their order.  I want to write *EACH INDIVIDUAL
>>> LINE* backwards.  The following script does what I want...
>>
>> Rewriting backwards and sorting will cause trouble because of padding
>> (reversed abcz is before reversed abca)
>>
>>
>> sort -rk ... should do it
>
> This is by far the easiest solution posted, although I'm not sure why you
> would need "-r". That reverses the sort order (i.e. to reverse alphabetic)
> which wasn't in the problem description.
>
> Just to clarify Peter's answer. If you have N fields in a line, use:
>
>    sort -k N

    That doesn't help if you don't know how many fields there are,
    or if there is a variable number of fields.

> For details see:
>
>    info coreutils sort

-- 
    Chris F.A. Johnson                      <http://cfaj.freeshell.org>
    ===================================================================
    Author:
    Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress)
--
The Toronto Linux Users Group.      Meetings: http://tlug.ss.org
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://tlug.ss.org/subscribe.shtml





More information about the Legacy mailing list