On 10/08/2013 05:10 PM, Gabriel Gaster wrote: [Can you convince your mailer to wrap long lines? It would make it easier for me to reply]
> the question in my mind remains: if a user specifies a field-separator > shouldn't that override the locale? No, because POSIX requires that -n parse as many characters as possible regardless of locale, unless you explicitly ask to limit the sort to a specific key. Perhaps less likely to be used in real life, but still apropos to the example: $ printf '1202\n2011\n' | LC_ALL=C sort --debug -t0 -s -n -k1,1 sort: using simple byte comparison 2011 _ 1202 __ $ printf '1202\n2011\n' | LC_ALL=C sort --debug -t0 -s -n sort: using simple byte comparison 1202 ____ 2011 ____ And you'll get the same behavior on Solaris or BSD sort (at least, assuming they don't have blatant POSIX compliance bugs). Once you understand WHY the above example has two different sorts, based on whether -k is used, you'll understand why we can't stop parsing -n at a comma even for -t, in a non-C locale. > It seems that the locale overrides specific arguments to sort (in this case, > field-separator=, ). Rather, the lack of -k determines how far -n will parse, regardless of locale; it's just that some locales let -n parse farther than others. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
