Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
символы в SHELL.docx
Скачиваний:
3
Добавлен:
22.11.2018
Размер:
61.51 Кб
Скачать

Файловые шаблоны в ndos

Понимая, что этих шаблонов слишком мало, автор всемирно известных Norton Utilities, Питер Нортон, чьим любимым занятием было усовершенствование DOS (постепенно эти вещи появлялись и у Микрософт: однажды они сделали Скандиск, однажды купили у Нортона усеченный дефрагментатор…), еще в 80-х годах ввел расширенную поддержку шаблонов в свой командный интерпретатор NDOS (Norton Disk Operation Sistem), который предложил в замен Command.com-а. Язык NDOS своими возможностями не уступал бейсику и входил в состав Нортоновских утилит до тех пор, пока не наступило господство Windows. С наступлением эпохи Windows, NDOS утратил значение, так как практически для всех задач, для которых раньше требовалась командная строка, были сделаны графические аналоги и уже никто не хотел помнить, как правильно писать, например, VSCRPUT. Кроме того, NDOS не поддерживал длинных имен, а Питер Нортон, к тому времени, ушел на покой, продав права на разработки и торговые марки корпорации Symantec, так что, продлевать жизнь NDOS-а было некому, а, возможно, и незачем. Но ветераны компьютерного фронта, возможно еще помнят, каким мощным был язык и какими были его файловые шаблоны.

В NDOS, к стандартным звездочке и вопросительному знаку добавились наборы символов и их диапазоны, а так же, логические операторы.

Подобный шаблон заключался в квадратные скобки в которых прописывались требуемые символы, либо диапазон (символ1 – символ2). Для обозначения того что, символы, наоборот, не требуются, ставился восклицательный знак. Как в таком случае работала всем известная команда DIR?

dir [acm]* выводит список файлов и каталогов, начинающихся либо на a, либо на c, либо на m.

dir [a-c]* выводит список файлов и каталогов, начинающихся либо на a, либо на b, либо на c.

dir [!c]* выводит список файлов и каталогов, НЕ начинающихся на c.

 

Заинтересовавшиеся NDOS могут скачать и сам NDOS, и русскоязычную документацию к нему в архивах со страницы  NDOS (поскольку он утратил актуальность, я не распаковываю документацию на сайт).

 

Однако, не будем далеко отходить от темы.

NDOS раздвинул границу шаблонов, возможно, заимствовав эту идею из Unix (в каком году она там появилась?). По крайней мере, в Unix, для командного интерпретатора Shell, используется тот же синтаксис.

Файловые шаблоны командного интерпретатора Shell

Поиск всех символов (метасимвол *)

Метасимвол * осуществляет поиск любой строки символов, включая нулевую (пустую) строку. Вы можете использовать * для обозначения полного или частичного имени файла. Просто символ * ищет все имена файлов и справочников в текущем справочнике, за исключением тех, которые начинаются с точки.

Символ * может представлять символы в любой части имени файла. Например, если вы знаете, что несколько файлов имеют одинаковые первые и последние буквы, то вы можете выдать запрос, основываясь на этом факте. Если в вашем справочнике находятся файлы FATE, FE, FADED_LINE, FIG3.4E, FINE_LINE, FAST_LINE, то для отображения всех этих файлов используйте шаблон:

F*E

 

Поиск по одному символу (метасимвол ?)

Метасимвол ? осуществляет поиск любого одного символа в имени файла за исключением лидирующей точки. Предположим, вы имеете книгу, в которой 12 глав и хотите получить список глав до 9-ой главы. Если ваш справочник содержит следующие файлы:

Chapter1

Chapter2

Chapter5

Chapter9

Chapter11

то используйте шаблон с метасимволом ? для получения всех глав, которые начинаются со строки "Chapter" и заканчиваются одним символом:

Chapter1

Chapter2

Chapter5

Chapter9

Хотя метасимвол осуществляет поиск одного символа, вы можете использовать его для поиска более одного символа в имени файла. Например, вы получите перечень всех остальных глав в текущем справочнике, если используете следующий шаблон:

Chapter??

И, конечно, чтобы получить список всех глав в текущем справочнике, используйте метасимвол *:

Chapter*

Поиск одного набора (метасимвол [])

Если вы хотите, чтобы shell нашел любой символ из перечисленных вами символов, то заключите эти символы в квадратные скобки. Предположим, ваш справочник содержит следующие файлы: cat, fat, mat, rat. Если вы воспользуетесь в качестве части имени файла шаблоном [crf], то shell будет искать имена файлов, в которые входят либо буква "c", либо буква "r", либо буква "f" в указанной позиции. Поис по шаблону [crf]at даст следующий результат:

cat

fat

rat

Символы, которые могут быть сгруппированы в скобки, называются классом символов.

Скобки могут также использоваться для обозначения диапазона символов, цифр или букв. Предположим в вашем справочнике содержатся следующие файлы: chapter1, chapter2, chapter3, chapter4, chapter5, chapter6. Если вы укажете:

chapter[1-5]

то shell найдет файлы c chapter1 по chapter5.

Класс символов можно также указать с помощью диапазона букв. Если вы укажете [A-Z], то shell будет искать только большие буквы, если [a-z] - то малые буквы.

 

Используется ли в Shell символ отрицания, как в NDOS – не знаю, не пробовал, а в документации не вижу. Приду на работу, попробую (если не забуду). Напишу, что получится.