Используя специальные символы, можно формировать шаблоны имен файлов.
| * | соответствует любой (возможно, пустой) последовательности символов |
| ? | соответствует точно одному любому символу |
| [ ] | используются для группирования символов в наборы. Наборы могут задаваться: - явным перечислением символов, без указания разделителей между ними, например [atz56,=] – символ соответствует либо одной из трех букв a, t и z, либо одной из цифр 5 и 6, либо одному из спецсимволов запятая и знак равенства - путем указания диапазона, например [a-z] – символ соответствует строчной букве от а до z - комбинацией этих способов, например [0-9ij] – символ соответствует либо цифре, либо одной из букв i или j |
| ! | используется для отрицания набора символов, то есть имя файла не должно содержать указанных символов |
Примеры:
| f* | соответствует файлам с именами, начинающимися с буквы f |
| *f* | соответствует файлам с именами, содержащими букву f |
| program.? | соответствует файлам с именами program, имеющими однобуквенные расширения |
| ??[a-d]* | соответствует файлам с именами, в которых третьей буквой является a, b, c или d |
| [!A-Z]*[2468] | соответствует файлам с именами, не начинающимися с большой буквы и заканчивающимися на цифру 2, 4, 6 или 8 |
Если в имя файла должен входить какой-либо спецсимвол, то при указании шаблона этот спецсимвол необходимо предварять с помощью обратного слэша («\»), или экранировать, например:
| [AEIOUYaeiouy]\*??? | соответствует файлам с именами, начинающимися с гласной буквы, за которой следует символ *, а за ней – три произвольных символа |
При использовании диапазонов символов следует учитывать, что они могут зависеть от выбранных настроек локализации. Например, диапазон [b-e] означает символы от b до е включительно. В английском языке, где сортировка букв идет по порядку (ABC…XYZabc…xyz), указанному набору соответствует набор символов b, c, d, e. Согласно правилам русского языка, сортировка тех же символов идет в другом порядке (аАбБвВ…эЭюЮяЯaAbBcC…xXyYzZ) и тому же диапазону соответствуют символы b, B, c, C, d, D, е. Для решения таких проблем имеются объявления некоторых классов и категорий символов:
| [:upper:] | Латинские буквы верхнего регистра |
| [:lower:] | Латинские буквы нижнего регистра |
| [:alpha:] | Латинские буквы верхнего и нижнего регистров |
| [:alnum:] | Латинские буквы верхнего и нижнего регистров, цифры |
| [:digit:] | Цифры |
| [:xdigit:] | Шестнадцатеричные цифры |
| [:punct:] | Знаки пунктуации |
| [:blank:] | Пробел и табуляция |
| [:space:] | Символы пропуска (пробел, табуляция, перевод каретки, перевод строки и т.п.) |
| [:cntrl:] | Управляющие символы (клавиша [Ctrl]+символ) |
| [:graph:] | Символы печати |






