|
Поиск по сайту:
Главная
О проекте
Web-мастеру
HTML & JavaScript
SSI
Perl
PHP
XML & XSLT
Unix Shell
MySQL
Безопасность
Хостинг
Другое
|
|
18.2. Globbing -- Подстановка имен файлов
Bash, сам по себе, не распознает регулярные выражения. Но
в сценариях можно использовать команды и утилиты, такие как
sed и awk,
которые прекрасно справляются с обработкой регулярных
выражений.
Фактически, Bash может выполнять подстановку имен файлов,
этот процесс называется "globbing", но при этом не используется
стандартный набор регулярных выражений. Вместо этого, при
выполнении подстановки имен файлов, производится
распознавание и интерпретация шаблонных символов. В число
интерпретируемых шаблонов входят символы * и ?, списки
символов в квадратных скобках и некоторые специальные символы
(например ^, используемый для
выполнения операции отрицания). Применение шаблонных символов
имеет ряд важных ограничений. Например, если имена файлов
начинаются с точки (например так: .bashrc), то они не будут соответствовать
шаблону, содержащему символ *. Аналогично, символ ? в операции подстановки имен
файлов имеет иной смысл, нежели в регулярных
выражениях.
bash$ ls -l
total 2
-rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 a.1
-rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 b.1
-rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 c.1
-rw-rw-r-- 1 bozo bozo 466 Aug 6 17:48 t2.sh
-rw-rw-r-- 1 bozo bozo 758 Jul 30 09:02 test1.txt
bash$ ls -l t?.sh
-rw-rw-r-- 1 bozo bozo 466 Aug 6 17:48 t2.sh
bash$ ls -l [ab]*
-rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 a.1
-rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 b.1
bash$ ls -l [a-c]*
-rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 a.1
-rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 b.1
-rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 c.1
bash$ ls -l [^ab]*
-rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 c.1
-rw-rw-r-- 1 bozo bozo 466 Aug 6 17:48 t2.sh
-rw-rw-r-- 1 bozo bozo 758 Jul 30 09:02 test1.txt
bash$ ls -l {b*,c*,*est*}
-rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 b.1
-rw-rw-r-- 1 bozo bozo 0 Aug 6 18:42 c.1
-rw-rw-r-- 1 bozo bozo 758 Jul 30 09:02 test1.txt
Bash выполняет подстановку имен файлов при использовании
аргументов командной строки без кавычек. Команда echo наглядно демонстрирует это.
bash$ echo *
a.1 b.1 c.1 t2.sh test1.txt
bash$ echo t*
t2.sh test1.txt
|
Bash предоставляет возможность изменить порядок
интерпретации специальных символов во время
подстановки имен файлов. Так команда set -f запрещает подстановку, а
ключи nocaseglob и nullglob в shopt изменяют характер
подстановки.
|
См. также Пример 10-4.
Назад | Вперед
Содержание (общее) | Содержание раздела | Содержание подраздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|
|
|