3. Шаблони підстановки в командному процесорі

Ви, мабуть, вже використовували символи підстановки, не знаючи, що це таке. Якщо ви вказуєте файл в Windows® або виконуєте пошук файла, ви використовуєте * для встановлення відповідності випадковому рядку. Наприклад, *.txt відповідає всім файлам з іменами, які закінчуються на .txt. Ми також часто використовували це в останньому розділі. Але крім * існує ще багато інших підстановок.

Коли ви вводите команду на зразок ls *.txt і натискаєте на Enter, завдання по пошуку файлів, відповідних шаблону *.txt, виконується не командою ls, а самим shell'ом. Потрібне певне пояснення того, як командний рядок інтерпретується shell'ом. Коли ви вводите:

$ ls *.txt
readme.txt  recipes.txt

командний рядок розбивається спочатку на слова (ls і *.txt в цьому прикладі). Коли командний процесор бачить у слові *, він буде інтерпретувати все слово як шаблон підстановки і буде заміняти його іменами всіх відповідних файлів. Тому команда, перш ніж командний процесор виконає її, приймає вигляд ls readme.txt recipe.txt, що й дає очікуваний результат. Інші символи також змушують командний процесор реагувати таким чином:

Далі представлено кілька шаблонів та їх значення:



[14] Будьте обережні! Хоча це справедливо для більшості мов, це може бути не так у вашому власному налаштуванні мови (локалі). Це залежить від порядку сортування. У деяких мовних конфігураціях [a-z] відповідатиме a, A, b, B, (...), z. Не кажучи вже про те, що деякі мови мають підкреслені символи...