Учебник по Bash Globbing

Bash Globbing Tutorial



Bash не поддерживает собственные регулярные выражения, как некоторые другие стандартные языки программирования. Функция оболочки Bash, которая используется для сопоставления или расширения определенных типов шаблонов, называется подстановкой. Подстановка в основном используется для сопоставления имен файлов или поиска содержимого в файле. Для создания шаблона в Globbing используются подстановочные знаки. Ниже описаны наиболее распространенные подстановочные знаки, которые используются для создания шаблонов подстановки.

‘?’ используется для соответствия любому одиночному символу. Вы можете использовать ‘?’ несколько раз для сопоставления нескольких символов.







Пример-1:



Предположим, вы хотите выполнить поиск в тех текстовых именах файлов, имена которых состоят из 4 символов и имеют расширение .текст . Вы можете применить шаблон наложения с помощью ‘ ? Четыре раза выполнить это задание.



Узнайте список всех файлов и папок в текущем каталоге.





$ls-

Выполните следующую команду, чтобы найти те файлы, имена которых состоят из четырех символов и неизвестны.

$ ls -l ????. txt



Пример-2:

Предположим, вы хотите выполнить поиск в тех файлах документов, имена которых состоят из 8 символов, первые 4 символа - это ф, о, о а также т и расширение док . Выполните следующую команду с шаблоном подстановки для поиска файлов.

$ls -фут ????. док

Пример-3:

Предположим, вы знаете, что имя файла 'Лучший' и расширение состоит из 3 символов, но не знает расширения. Выполните следующую команду, используя ‘? ’Для поиска всех файлов с именем' test ', имеющим любое расширение, состоящее из трех символов.

$ls -Лучший.???

Звездочка - (*)

‘*’ используется для сопоставления нуля или более символов. Если у вас меньше информации для поиска любого файла или информации, вы можете использовать ‘*’ в шаблоне сглаживания.

Пример -1:

Предположим, вы хотите найти все файлы ‘Pl’ расширение. Выполните следующую команду, используя ‘*’ для выполнения этой задачи.

$ls - *.pl

Пример-2:

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

$ls -к*.*

Пример-3:

Вы можете применять '*' в сценарии bash для различных целей без поиска файлов. Создайте файл bash с именем ‘Check.sh’ со следующим сценарием. Здесь, когда пользователь введет ' y »или« Y »,« да »или« да » тогда 'подтвержденный' будет печатать, и когда тип будет напечатан «Н» или «н», «нет» или «нет» тогда 'Не подтверждено' напечатает.

#! / bin / bash
выбросил 'Вы хотите подтвердить?'
читатьотвечать
кейс $ ответ в
[Yy]* ) выбросил 'подтвержденный.';;
[]* ) выбросил 'Не подтверждено.';;
*) выбросил 'Попробуйте снова.';;
esac

Запускаем скрипт.

$трепатьcheck.sh

Квадратная скобка - ([])

‘[]’ используется для сопоставления символа из диапазона. Некоторые из наиболее часто используемых объявлений диапазонов упомянуты ниже.

Все буквы верхнего регистра определяются диапазоном как, [: upper:] или [A-Z].

Все строчные алфавиты определяются диапазоном как, [: lower:] или [a-z].

Все числовые цифры определяются диапазоном как, [: digit:] или [0-9].

Все буквы верхнего и нижнего регистра определяются диапазоном как [: alpha:] или [a-zA-z].

Все буквы верхнего регистра, алфавит нижнего регистра и цифры определяются диапазоном как, [: alnum:] или [a-zA-Z0-9]

Пример -1:

Выполните следующую команду для поиска всех файлов и папок, имя которых содержит п или какие или р или s .

$ls - [п-с]*

Пример-2:

Выполните следующую команду для поиска всех файлов и папок, имя которых начинается с любой цифры от 1 до 5.

$ls - [1-5]*

Ему не хватает - (^)

Вы можете использовать ‘^’ с квадратной скобкой для более точного определения шаблона подстановки. ‘^’ может использоваться внутри или снаружи квадратной скобки. ‘^’ Используется вне квадратных скобок для поиска того содержимого файла, которое начинается с заданного диапазона символов. ‘^’ Используется внутри квадратных скобок для отображения всего содержимого файла путем выделения строк, начинающихся с заданного диапазона символов. Вы можете использовать различные типы шаблонов подстановки для поиска определенного содержимого в файле. 'рукоятка' Команда используется для поиска контента в bash. Предположим, у вас есть текстовый файл с именем ‘List.txt’ со следующим содержанием. Проверьте следующие примеры для этого файла.

яблоко
4000
Банан
700
апельсин
850
Груша
9000
джекдрут

Пример - 1:

Выполните следующую команду для поиска этих строк из list.txt файл, который начинается с P или Q или R .

$ grep '^ [P-R]' list.txt

Пример - 2:

Выполните следующую команду, чтобы выделить эти строки из list.txt файл, который начинается с А или В или С .

$ grep '[^ A-C]' list.txt

Восклицательный знак - (!)

Вы можете использовать '!' внутри шаблона диапазона. Он работает так же, как использование символа «^» вне шаблона диапазона. Некоторые примеры использования '!' знак приведены ниже.

Пример - 1:

Выполните следующую команду, чтобы показать эти строки из list.txt файл, который начинается с «P» или Q или R .

$ grep [! P-R] list.txt

Пример - 2:

Выполните следующую команду, чтобы показать эти строки из list.txt файл, который начинается с любой цифры от От 4 до 8 .

$ grep [! 4-8] list.txt

Знак доллара - ($)

‘$’ используется для определения конечного символа. Если вы знаете, что хотите искать информацию на основе последнего символа, вы можете использовать ‘$’ в шаблоне сглаживания.

Пример - 1:

Выполните следующую команду для поиска этих строк из list.txt файл, заканчивающийся на 'к' .

$ grep a $ list.txt

Пример - 2:

Выполните следующую команду для поиска этих строк из list.txt файл, заканчивающийся номером пятьдесят .

$ grep 50 $ list.txt

Фигурная скобка - ({})

‘{}’ может использоваться для сопоставления имен файлов с более чем одним шаблоном подстановки. Каждый шаблон разделен фигурными скобками ',' без пробелов. Ниже приведены некоторые примеры.

Пример - 1:

Выполните следующую команду для поиска тех файлов, имена которых состоят из 5 символов и имеют расширение ‘Sh’ или последние два символа файлов ‘St’ и расширение 'текст' .

$ ls -l {?????. sh, * st.txt}

Пример - 2:

Выполните следующую команду, чтобы удалить все файлы с расширениями «Doc» или «docx» .

$rm {*.doc,*.docx}

Труба– (|)

Знак «|» также используется для применения более чем одного условия к шаблону подстановки. Каждый шаблон в команде отделяется символом «|».

Пример - 1:

Выполните следующую команду для поиска тех имен файлов, которые начинаются с символа «a» и имеют расширение «bash» или «sh».

$lsк*+(.bash|.sh)

Пример - 2:

Создайте файл bash с именем ‘Menu.bash’ и добавьте следующий скрипт. Если тип пользователя 1 или S тогда он напечатает Поиск текста . Если тип пользователя 2 или R тогда он напечатает Замена текста . Если тип пользователя 3 или D тогда он напечатает Удаление текста . Он напечатает Попробуйте снова для любого другого входа.

#! / bin / bash
выбросил 'Выберите любой вариант в меню:'
читатьотвечать
кейс $ ответ в
1 |S) выбросил 'Поиск текста';;
2 |р) выбросил 'Замена текста';;
3 |D) выбросил 'Удаление текста';;
*) выбросил 'Попробуйте снова.';;
esac

Запускаем скрипт.

$трепатьmenu.bash

ЗАКЛЮЧЕНИЕ

Некоторые из наиболее часто используемых шаблонов подстановки объясняются в этом руководстве на очень простых примерах. Я надеюсь, что после того, как вы попрактикуетесь в приведенных выше примерах, концепция подстановки будет вам понятна, и вы сможете успешно применять ее в командах и скриптах bash.

Для получения дополнительной информации посмотрите это видео: