On 01/31/12 06:31, Robert Bonomi wrote:
 From owner-freebsd-questi...@freebsd.org  Tue Jan 31 05:45:47 2012
Date: Tue, 31 Jan 2012 04:45:36 -0800
From: Edward Martinez<eam1edw...@gmail.com>
To: FreeBSD Questions<freebsd-questions@freebsd.org>
Subject: bash  LC_COLLATE or LC_ALL set =?windows-1252?q?=93C=94_not__sort?=
  =?windows-1252?q?_in_dictionary_order=2E?=




      Hi,

      Been trying to get BASH to sort set characters in  dictionary order.
     I typed "locale" and it shows LC_COLLATE and LC_ALL are set to "C"
thought that was enough to work,
     however when i type metacharacters:  set character; any character,
something like this:

         ls  [a-cx-y]*

      bash does not sort in dictionary order; file   "Binarc" does not
list.

*OF*COURSE* it doesn't.  Unix is _case_sensitive_.  You specified a lower-
case only (in the C locale) pattern.  Naturally, it doesn't match a file
with an upper-case character in it.

Note: in the 'C' locale, characters are sorted on the underlying byte value.
Thus you will get all the upper-case matches before any lower-case match.

To get upper-and-lower case files in the C locale, you will have to use:
           ls [A-CX-Ya-cx-y]*

IF you speciy a different charset for collating, you _may_ get upper/lower
case characters sorted adjacently.  See the specifications for the charset
in question.


    Thanks for reply!

I meant LC_COLLATE being set to en_US.UTF-8 not C. linux and solaris shows both upper and lowercase when set characters like [a-cx-y] and others are used. when LC_COLLATE is set to en_US.UTF-8. I thought it could be also done in FreeBSD's bash when LC_COLLATE is set to en_US.UTF-8

    in linux LC_COLLATE is set to en_US,UTF-8
    eam@localhost ~/testdir $ locale
    LANG=
    LC_CTYPE="POSIX"
    LC_NUMERIC="POSIX"
    LC_TIME="POSIX"
*LC_COLLATE=en_US.UTF-8*
    LC_MONETARY="POSIX"
    LC_MESSAGES="POSIX"
    LC_PAPER="POSIX"
    LC_NAME="POSIX"
    LC_ADDRESS="POSIX"
    LC_TELEPHONE="POSIX"
    LC_MEASUREMENT="POSIX"
    LC_IDENTIFICATION="POSIX"
    LC_ALL=


    And when i type the following it shows both:

    eam@localhost ~/testdir $ ls [a-cx-y]*
    bincar  Bincar

    eam@localhost ~/testdir $ ls [a-z]*
    bincar  Bincar  file  File  zcar









_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to