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 > --------------------------------------------------------------------------- > > > >