Print

Print


set LC_ALL=C; cat all.msf | sort -k 2 -n
y01_FA 2.3574492500 .5149928333
y03_FA 2.7007018333 .6276878333
y04_FA 2.2736573333 .4934251666
y06_FA 2.2188285000 .5140117500
y09_FA 2.4416411666 .5374885000
y10_FA 2.1813674166 .4532854166
y11_FA 2.0237245000 .4157899166
y02_FA 3.0492390833 .7670747500
y05_FA 3.0221233333 .7417060000
y07_FA 3.0134415833 .7737685833
y08_FA 3.0019868333 .7800315000
y12_FA 3.1669953333 .8578153333

Am I using set in the right way?
If yes, the weird is still here.


On Tue, Feb 28, 2012 at 11:22, Stephen Smith <[log in to unmask]> wrote:

> This is very  weird - I have the same version of sort on my mactop and it
> seems fine.
>
> The sort man page says
>
>    *** WARNING *** The locale specified by the environment affects sort
> order.  Set LC_ALL=C to get  the
>        traditional sort order that uses native byte values.
>
> Might this be the answer??
>
> Cheers.
>
>
>
> On 28 Feb 2012, at 08:18, Christophe Bedetti wrote:
>
> Hi Rolf and Steve,
>
> My OS is MAS OS X 10.5.8
> sort --version : sort (GNU coreutils) 5.93
>
> Here is the result of the differents command line.
>
> cat all.msf | sort -k 3 -n | head -n 1 | awk '{print $1}'
>   y01_FA
> cat all.msf | sort -t ' ' -k 2 -n | head -n 1 | awk '{print $1}'
>   y01_FA
>  cat all.msf | sort -k 2 | head -n 1 | awk '{print $1}'
>   y11_FA
>
> When I look at the ouptut of sort, my shell orders only the unit number.
> It doesn't use the decimal part.
> cat all.msf | sort -k 2 -n
> y01_FA 2.3574492500 .5149928333
> y03_FA 2.7007018333 .6276878333
> y04_FA 2.2736573333 .4934251666
> y06_FA 2.2188285000 .5140117500
> y09_FA 2.4416411666 .5374885000
> y10_FA 2.1813674166 .4532854166
> y11_FA 2.0237245000 .4157899166
> y02_FA 3.0492390833 .7670747500
> y05_FA 3.0221233333 .7417060000
> y07_FA 3.0134415833 .7737685833
> y08_FA 3.0019868333 .7800315000
> y12_FA 3.1669953333 .8578153333
>
> It's all good without the -n
> cat all.msf | sort -k 2
> y11_FA 2.0237245000 .4157899166
> y10_FA 2.1813674166 .4532854166
> y06_FA 2.2188285000 .5140117500
> y04_FA 2.2736573333 .4934251666
> y01_FA 2.3574492500 .5149928333
> y09_FA 2.4416411666 .5374885000
> y03_FA 2.7007018333 .6276878333
> y08_FA 3.0019868333 .7800315000
> y07_FA 3.0134415833 .7737685833
> y05_FA 3.0221233333 .7417060000
> y02_FA 3.0492390833 .7670747500
> y12_FA 3.1669953333 .8578153333
>
> Just to be sure, I check all.msf and it doesn't seem to have any funny
> characters in it
>
> od -c -b all.msf
> 0000000    y   0   1   _   F   A       2   .   3   5   7   4   4   9   2
>           171 060 061 137 106 101 040 062 056 063 065 067 064 064 071 062
> 0000020    5   0   0       .   5   1   4   9   9   2   8   3   3   3  \n
>           065 060 060 040 056 065 061 064 071 071 062 070 063 063 063 012
> 0000040    y   0   2   _   F   A       3   .   0   4   9   2   3   9   0
>           171 060 062 137 106 101 040 063 056 060 064 071 062 063 071 060
> 0000060    8   3   3       .   7   6   7   0   7   4   7   5   0   0  \n
>           070 063 063 040 056 067 066 067 060 067 064 067 065 060 060 012
> 0000100    y   0   3   _   F   A       2   .   7   0   0   7   0   1   8
>           171 060 063 137 106 101 040 062 056 067 060 060 067 060 061 070
> 0000120    3   3   3       .   6   2   7   6   8   7   8   3   3   3  \n
>           063 063 063 040 056 066 062 067 066 070 067 070 063 063 063 012
> 0000140    y   0   4   _   F   A       2   .   2   7   3   6   5   7   3
>           171 060 064 137 106 101 040 062 056 062 067 063 066 065 067 063
> 0000160    3   3   3       .   4   9   3   4   2   5   1   6   6   6  \n
>           063 063 063 040 056 064 071 063 064 062 065 061 066 066 066 012
> 0000200    y   0   5   _   F   A       3   .   0   2   2   1   2   3   3
>           171 060 065 137 106 101 040 063 056 060 062 062 061 062 063 063
> 0000220    3   3   3       .   7   4   1   7   0   6   0   0   0   0  \n
>           063 063 063 040 056 067 064 061 067 060 066 060 060 060 060 012
> 0000240    y   0   6   _   F   A       2   .   2   1   8   8   2   8   5
>           171 060 066 137 106 101 040 062 056 062 061 070 070 062 070 065
> 0000260    0   0   0       .   5   1   4   0   1   1   7   5   0   0  \n
>           060 060 060 040 056 065 061 064 060 061 061 067 065 060 060 012
> 0000300    y   0   7   _   F   A       3   .   0   1   3   4   4   1   5
>           171 060 067 137 106 101 040 063 056 060 061 063 064 064 061 065
> 0000320    8   3   3       .   7   7   3   7   6   8   5   8   3   3  \n
>           070 063 063 040 056 067 067 063 067 066 070 065 070 063 063 012
> 0000340    y   0   8   _   F   A       3   .   0   0   1   9   8   6   8
>           171 060 070 137 106 101 040 063 056 060 060 061 071 070 066 070
> 0000360    3   3   3       .   7   8   0   0   3   1   5   0   0   0  \n
>           063 063 063 040 056 067 070 060 060 063 061 065 060 060 060 012
> 0000400    y   0   9   _   F   A       2   .   4   4   1   6   4   1   1
>           171 060 071 137 106 101 040 062 056 064 064 061 066 064 061 061
> 0000420    6   6   6       .   5   3   7   4   8   8   5   0   0   0  \n
>           066 066 066 040 056 065 063 067 064 070 070 065 060 060 060 012
> 0000440    y   1   0   _   F   A       2   .   1   8   1   3   6   7   4
>           171 061 060 137 106 101 040 062 056 061 070 061 063 066 067 064
> 0000460    1   6   6       .   4   5   3   2   8   5   4   1   6   6  \n
>           061 066 066 040 056 064 065 063 062 070 065 064 061 066 066 012
> 0000500    y   1   1   _   F   A       2   .   0   2   3   7   2   4   5
>           171 061 061 137 106 101 040 062 056 060 062 063 067 062 064 065
> 0000520    0   0   0       .   4   1   5   7   8   9   9   1   6   6  \n
>           060 060 060 040 056 064 061 065 067 070 071 071 061 066 066 012
> 0000540    y   1   2   _   F   A       3   .   1   6   6   9   9   5   3
>           171 061 062 137 106 101 040 063 056 061 066 066 071 071 065 063
> 0000560    3   3   3       .   8   5   7   8   1   5   3   3   3   3  \n
>           063 063 063 040 056 070 065 067 070 061 065 063 063 063 063 012
> 0000600
>
> sort with the -n option seems to not worked properly on my system.
> I'm puzzled.
>
> Sincerly,
>
> Christophe
>
>
> On Sun, Feb 26, 2012 at 12:40, Rolf A. Heckemann <
> [log in to unmask]> wrote:
>
>> Hi Christophe
>>
>> The -n option to sort ensures numeric ordering (default is
>> alphabetic).  -k 2 specifies that you want to sort on the second field
>> (key).  The default field separator is a blank-to-nonblank-character
>> transition (at least for the sort found in GNU coreutils).  I suspect
>> that your shell regards the understroke as a blank character.
>> Therefore, your command tries to numerically sort a series of
>> identical character strings ("FA"), so it gives up and returns the
>> original ordering.  If my suspicion is correct, each of the following
>> should give you the result you want:
>>
>>  cat all.msf | sort -k 3 -n | head -n 1 | awk '{print $1}'
>>   # specifies the correct field (key) on which to sort
>>
>>  cat all.msf | sort -t ' ' -k 2 -n | head -n 1 | awk '{print $1}'
>>  # tells sort to use space as the field separator
>>  # (recommended if you generally have space-separated
>>  # values in your files)
>>
>>  cat all.msf | sort -k 2 | head -n 1 | awk '{print $1}'
>>   # (the one you found to work correctly)
>>  # because when you sort alphabetically, it sorts on the entire
>>  # string from the specified key to the end of the line, so it
>>  # does not matter that each string starts with "FA".
>>
>> Hope that helps
>>
>> Rolf
>>
>>
>> On 24 February 2012 22:28, Christophe Bedetti
>> <[log in to unmask]> wrote:
>> > Hi FSL list,
>> >
>> > I was looking at the way the best target image is chosen during the step
>> > tbss_3_postreg when I use the -n option during the step tbss_2_reg.
>> > Here is my all.msf.
>> >
>> > cat all.msf
>> > y01_FA 2.3574492500 .5149928333
>> > y02_FA 3.0492390833 .7670747500
>> > y03_FA 2.7007018333 .6276878333
>> > y04_FA 2.2736573333 .4934251666
>> > y05_FA 3.0221233333 .7417060000
>> > y06_FA 2.2188285000 .5140117500
>> > y07_FA 3.0134415833 .7737685833
>> > y08_FA 3.0019868333 .7800315000
>> > y09_FA 2.4416411666 .5374885000
>> > y10_FA 2.1813674166 .4532854166
>> > y11_FA 2.0237245000 .4157899166
>> > y12_FA 3.1669953333 .8578153333
>> >
>> > cat all.msf | sort -k 2 -n | head -n 1 | awk '{print $1}'
>> > y01_FA
>> >
>> > Shouldn't be y11_FA the best image in my case?
>> > After searching a bit, I found that without the -n option of sort, the
>> > output is y11_FA.
>> >
>> > cat all.msf | sort -k 2 | head -n 1 | awk '{print $1}'
>> > y11_FA
>> >
>> > I'm not sure why.
>> > I don't understand what is the -n option here.
>> > Maybe the names of my subjects interfere with sort?
>> >
>> > Sincerly,
>> >
>> > Christophe
>> >
>>
>>
>>
>> --
>> Rolf A Heckemann, MD PhD
>> Médecin chercheur
>> Fondation Neurodis
>> CERMEP - Imagerie du Vivant
>> Hôpital Neurologique Pierre Wertheimer
>> 59 Boulevard Pinel
>> 69003 Lyon
>> France
>>
>
>
>
> ---------------------------------------------------------------------------
> Stephen M. Smith, Professor of Biomedical Engineering
> Associate Director,  Oxford University FMRIB Centre
>
> FMRIB, JR Hospital, Headington, Oxford  OX3 9DU, UK
> +44 (0) 1865 222726  (fax 222717)
> [log in to unmask]    http://www.fmrib.ox.ac.uk/~steve
> ---------------------------------------------------------------------------
>
>
>
>