--- Begin Message ---
Subject: |
sort order |
Date: |
Sat, 19 May 2012 10:10:11 +0530 |
Dear Sir,
By using the following sort command to sort the input
file due, the output due is showing as :
sort -dfi -k1.11,1.39 -odue due
123180024 BIJJALA ESWARA RAO 1580.50
061233693 BIJJALA JANARDHAN RAO 2280.00
123812394 BIJJALA VENKATESWAR RAO 1682.50
123349123 BIRJALA JANARDHAN RAO 2794.20
123712310 B.KRISHNA MURTHY 2362.50
123234123 B MUTHAIAH 1727.00
038123230 B NAGESWAR RAO 1625.00
121237123 BODA VIJAYA 2827.00
041237267 BODDU APPAIAH 485.60
123123361 BODDU SRINIVASA RAO 4540.00
012316123 BODDU VEERA SWAMY 1527.50
Sorting was on name order (i.e. position 11 to 39)
After 4 records i.e after BIRJALA JANARDHAN RAO,
we find B.KRISHNA MURTHY where as B.KRISHNA MUTHY,
B MUTHAIAH, B NAGESWAR RAO come first in sorted
order , kindly guide us.
"The information contained in this electronic message and any attachments to
this
message are intended for exclusive use of the addressee(s) and may contain
confidential or privileged information. If you are not the intended recipient,
please
notify the sender at LIC OF INDIA or address@hidden immediately and
destroy all copies of this message and any attachments. The views expressed in
this E-mail message / Attachments, are those of the individual sender."
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#11516: sort order |
Date: |
Sat, 19 May 2012 11:31:22 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:6.0) Gecko/20110816 Thunderbird/6.0 |
On 05/19/2012 05:40 AM, e.sambasivarao wrote:
> Dear Sir,
>
> By using the following sort command to sort the input
> file due, the output due is showing as :
>
> sort -dfi -k1.11,1.39 -odue due
>
>
>
> 123180024 BIJJALA ESWARA RAO 1580.50
> 061233693 BIJJALA JANARDHAN RAO 2280.00
> 123812394 BIJJALA VENKATESWAR RAO 1682.50
> 123349123 BIRJALA JANARDHAN RAO 2794.20
> 123712310 B.KRISHNA MURTHY 2362.50
> 123234123 B MUTHAIAH 1727.00
> 038123230 B NAGESWAR RAO 1625.00
> 121237123 BODA VIJAYA 2827.00
> 041237267 BODDU APPAIAH 485.60
> 123123361 BODDU SRINIVASA RAO 4540.00
> 012316123 BODDU VEERA SWAMY 1527.50
>
> Sorting was on name order (i.e. position 11 to 39)
> After 4 records i.e after BIRJALA JANARDHAN RAO,
> we find B.KRISHNA MURTHY where as B.KRISHNA MUTHY,
> B MUTHAIAH, B NAGESWAR RAO come first in sorted
> order , kindly guide us.
Well there are a few things going on here.
-d will exclude '.' but include ' '
-f is redundant with -d as -d is a subset of -f (I think)
Also your locale make exclude punctuation chars from the search.
I.E. cause ' ' to be disregarded in the sort.
Now with -d, sort will not treat '.' and ' ' equivalently,
or sort in ASCII order. So you have 2 options I think:
tr '.' ' ' < due | LANG=C sort -di -k1.11,1.39 > due.sorted
LANG=C sort -i -k1.11,1.39 -o due due
The former will convert '.' to ' ',
while the latter will include non dictionary chars in the sort.
cheers,
Pádraig.
--- End Message ---