Класс символов

Описание

[:alnum:]

Алфавитно-цифровые символы; эквивалент диапазона [A-Za-z0-9] в ASCII

[:word:]

То же, что и [:alnum:], с дополнительным символом подчеркивания (_)

[:alpha:]

Алфавитные символы; эквивалент диапазона [A-Za-z] в ASCII

[:blank:]

Включает символы пробела и табуляции

[:cntrl:]

Управляющие символы ASCII; включает символы ASCII с кодами от 0 до 31 и 127

[:digit:]

Цифры от 0 до 9

[:graph:]

Отображаемые символы; включает символы ASCII с кодами от 33 до 126

[:lower:]

Символы нижнего регистра

[:punct:]

Знаки пунктуации; эквивалент класса [-!"#$%&'()*+,./:;<=>?@[\\\]_`{|}~] в ASCII

[:print:]

Печатаемые символы; все символы из класса [:graph:] и пробел

[:space:]

Пробельные символы, включая пробел, табуляцию, возврат каретки, перевод строки, вертикальную табуляцию и перевод формата; эквивалент класса [ \t\r\n\v\f] в ASCII

[:upper:]

Символы верхнего регистра

[:xdigit:]

Символы, используемые для представления шестнадцатеричных цифр; эквивалент класса [0-9A-Fa-f] в ASCII

возврат к традиционному порядку сортировки

Есть возможность вернуть систему к традиционному (ASCII) порядку сортировки, изменив значение переменной окружения LANG. Как было показано в предыдущем разделе, переменная LANG хранит название языка и набора символов, заданных в региональных настройках. Значение этой переменной первоначально определяется в момент, когда выбирается язык установки дистрибутива Linux.

Увидеть региональные настройки можно, выполнив команду locale:

[me@linuxbox ~]$ locale

LANG=en_US.UTF-8

LC_CTYPE="en_US.UTF-8"

LC_NUMERIC="en_US.UTF-8"

LC_TIME="en_US.UTF-8"

LC_COLLATE="en_US.UTF-8"

LC_MONETARY="en_US.UTF-8"

LC_MESSAGES="en_US.UTF-8"

LC_PAPER="en_US.UTF-8"

LC_NAME="en_US.UTF-8"

LC_ADDRESS="en_US.UTF-8"

LC_TELEPHONE="en_US.UTF-8"

LC_MEASUREMENT="en_US.UTF-8"

LC_IDENTIFICATION="en_US.UTF-8"

LC_ALL=

Чтобы установить региональные настройки, обеспечивающие традиционное поведение системы Unix, присвойте переменной LANG значение POSIX:

[me@linuxbox ~]$ export LANG=POSIX

Имейте в виду, что в результате наших действий система будет использовать набор символов американского английского (точнее, ASCII), поэтому подумайте, действительно ли это то, что вам нужно.

Эти изменения можно сделать постоянными, добавив следующую строку в файл .bashrc:

export LANG=POSIX

Но даже наличие классов символов не дает удобного способа выражения частичных диапазонов, таких как [A-M].

Используя классы символов, можно повторить пример с выводом содержимого каталога и посмотреть, насколько улучшился результат.

[me@linuxbox ~]$ ls /usr/sbin/[[:upper:]]*

/usr/sbin/MAKEFLOPPIES

/usr/sbin/NetworkManagerDispatcher

/usr/sbin/NetworkManager

Перейти на страницу:

Похожие книги