Monday, May 2, 2011

Re: sorting based on numercial value

On 5/2/2011 6:53 PM, Reid Thompson wrote:
> On 5/2/2011 6:49 PM, John Beckett wrote:
>> googler wrote:
>>> I have a text file with a number of lines in it. Each line
>>> has the same format, say something like below.
>>>
>>> <string1> <string2> <number> <string3>
>>>
>>> I want to sort this file based on the numerical value of the
>>> <number> field. How can I do this in vim? Thanks.
>> If there are no numbers in string1 and string2:
>> :sort n
>>
>> The 'n' gives a numeric sort, based on the first number in each
>> line. It is also possible to include a pattern. There are two
>> options. First, skip everything up to and including the pattern
>> (sort on what comes next; that's the default). Second (if r flag
>> specified), sort on the text matching the pattern.
>>
>> If a problem, give real examples of typical data.
>>
>> John
>>
> if the internal sort won't meet the requirements, use an external one
> and read the results back into the buffer
>
using v or ctrl-v to select all text...
and then applying the external sort with appropriate params(wouldn't
need the full path to sort depending on how your system is setup)


aaaa bbbb cccc 1 adsff
bbbb aaaa cccc 4 adsff
dddd aaaa cccc 5 adsff
dddd cccc aaaa 2 adsff
dddd gggg aaaa 3 adsff
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
:'<,'>! C:\unixutils\sort.exe -n -k4

yields

aaaa bbbb cccc 1 adsff
dddd cccc aaaa 2 adsff
dddd gggg aaaa 3 adsff
bbbb aaaa cccc 4 adsff
dddd aaaa cccc 5 adsff
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
5 lines filtered

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

No comments: