`sort' - is this a (minor) bug, or just an unexpected behavior ?!?

[email protected]
Newsgroups gmane.comp.gnu.textutils.bugs
Message-ID <[email protected]>
sort --version

sort (textutils) 2.0.14
Written by Mike Haertel and Paul Eggert.
[April 2001]


and, FWIW

uname -a

Linux 2.4.7-10 #1 Thu Sep 6 17:27:27 EDT 2001 i686 unknown



I read man and info pages, but didn't find an explanation for the facts
below :
[anyway, please, bear in mind that english is not my mother tongue]


Consider a four-line text file, referred here as `file_name', which is made
of the following lines :

5               6c
3               7c
1               9c
4               8c


sort -k 2,2 file_name

returns correctly

5               6c
3               7c
4               8c
1               9c


but

sort -k 2.1,2.1 file_name

(say I want to ignore char[s] past the numerical values, I know that's trivial,
but assume
I have a very long file to sort and using a one char only key, speeds it
up significately)

returns

1               9c
3               7c
4               8c
5               6c

that is, it sorts as if no key were given, using the entire line as the
key.

-------

the problem seems to be in the end delimiter of the key, as doing

sort -k 2.1,2 file_name


works as expected, returning


5               6c
3               7c
4               8c
1               9c


whereas

sort -k 2,2.1 file_name


returns the unexpected one

1               9c
3               7c
4               8c
5               6c


Hope this helps.

-------------------------------------------------

By the way, let me ask two related questions, whose answers I couldn't find
documented anywhere :


1) Sometimes I need to sort file using as key absolute char position, as
opposed to char
position relative to fields.

Say I want to sort a file using as unique key chars in columns 11 through
16
(Assume each line of the file has 25 or more chars)

I issue the following command

sort -k 1.11,1.16 other_file_name

and everything works, even if the first field has less than 11 chars, say
just 5 or 6)


[The same happens if I were to use two keys in place of one, say

sort -k 1.11,1.16 -k 1.21,1.23 other_file_name

]


Is that an undocumented feature, or just something which could stop working
with some next
release of `sort' (textutils) ?



2) What really happens when defining a key you express it in reverse order
?

e.g.

sort -k 8,3 file_name_another

that is reversing fields (I assume my file has at least 8 fields)

and

sort -k 2.6,2.3 file_name_another

that is reversing char position in a field (I assume second filed is at
least 6 chars long)



It seems that the sort is performed as if no key were given,
using the entire line as the key; but I'm not sure.


David Fabiani

[email protected]




__________________________________________________________________
Abbonati a Tiscali!
Con Tiscali By Phone puoi anche ascoltare ed inviare email al telefono.
Chiama Tiscali By Phone all' 892 800        http://byphone.tiscali.it
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.