Автор: root_x
« : 2007-04-19 15:37:40 »ну Ви ваще 

Автор: root_x« : 2007-04-19 15:37:40 »ну Ви ваще
![]() Автор: Михайло Даниленко« : 2007-03-29 21:45:49 »Дякую!
:#) Автор: Forum admin« : 2007-03-28 22:23:25 »Ага! Виявляється що можна. Отже урочисто (майже ![]() ![]() Автор: Володимир Лісівка« : 2007-02-13 16:22:48 »Дивовижне поряд... А в мене чомусь тільки A віднесло до верхнього регістру. ;-) Код: [Вибрати] for i in {A..z} ; do case "$i" in [a-z]) echo "Lower $i";; [A-Z]) echo "Upper $i";; *) echo "None $i";; esac; done Автор: Володимир Лісівка« : 2007-02-13 16:18:25 »[A-Z] - реагує на будь-яку велику латинську літеру, тому правильно не зреагувало на "а". Чи я щось не помітив? Можна, але я хотів щоб воно було посортовано (і цей варіант вимагав найменше зусиль). Цитата а у третьому баші на {A--z} або {A..z}.Ну взагалі-то має бути {A..Z} {a..z}. Я боявся що воно може дати "парну помилку" і може не у всіх спрацювати. Автор: Володимир Лісівка« : 2007-02-13 16:12:50 »Ага! Приз, в студію! ![]() Шкода що в ЩОДО не можна дати якусь відзнаку користувачу. :-( Автор: zzandy« : 2007-02-12 21:06:32 »Вибачте, я там попер проти істини. В мене теж при LC_ALL='' тільки Z вважається верхнім регістром, а при LC_ALL="C" вже пращює як треба.
Автор: Михайло Даниленко« : 2007-02-12 20:57:47 »Код: [Вибрати] [isbear: ~] locale Автор: zzandy« : 2007-02-12 20:37:11 »Дивовижне поряд...
Я тут дойшов до дому і спробував наступне: Код: [Вибрати] for i in {A..z} do І воно виводить саме те, що і можна подумати - маленькі літери до маленьких, великі - до великих, а все інше окремо. (Локаль uk_UA.UTF-8, LC_ALL не встановлено) Автор: Михайло Даниленко« : 2007-02-12 19:35:48 »Ага!
Цитата The sorting order of characters in range expressions is determined by the current locale and the value of the LC_COLLATE shell variable, if set. For example, in the default C locale, ‘[a-dx-z]’ is equivalent to ‘[abcdxyz]’. Many locales sort characters in dictionary order, and in these locales ‘[a-dx-z]’ is typically not equivalent to ‘[abcdxyz]’; it might be equivalent to ‘[aBbCcDdxXyYz]’, for example.(http://www.network-theory.co.uk/docs/bashref/PatternMatching.html) Отже, для української локалі маємо якраз останній випадок. Автор: Михайло Даниленко« : 2007-02-12 19:24:17 »А взагалі, краще користуватися:
Код: [Вибрати] for I in {A..Z} {a..z} ; do Тоді все працює в будь-якій локалі.Автор: Михайло Даниленко« : 2007-02-12 18:20:20 »Якщо перед виконанням зробить
Код: [Вибрати] export LC_ALL="C" То воно буде себе вести цілком логічно. Як я розумію, проблема в тому, що воно сортує символи у відповідності до поточної локалі... Але воно видає OK на маленькі літери і коли локаль uk_UA.UTF-8 і коли uk_UA.KOI8-U, отже сортування іде взагалі по unicode mappings?Автор: Praporshic« : 2007-02-12 17:54:25 »Так, не помітили. Воно мені сказало OK на усі інші літери. Як на малі, так і на великі.
Автор: zzandy« : 2007-02-12 15:35:59 »[A-Z] - реагує на будь-яку велику латинську літеру, тому правильно не зреагувало на "а". Чи я щось не помітив?
Доречі, в прикладі `echo q ...` можна замінити на просто q w ..., а у третьому баші на {A--z} або {A..z}. Автор: Praporshic« : 2007-02-12 14:14:29 »Таки не вірно пам'ятаю.
Воно видало BAD на "a". Подивився у REGEXP reference і зрозумів що тут не pcre. |