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