‘?’ се използва за съвпадение на всеки един символ. Можеш да използваш ‘?’ за няколко пъти за съвпадение на множество знаци.
Пример-1:
Да предположим, че искате да търсите в тези имена на текстови файлове, чиито имена са с дължина 4 знака, а разширението е .текст . Можете да приложите модел на глобулиране, като използвате „ ? “Четири пъти, за да се справите с тази задача.
Разберете списъка с всички файлове и папки в текущата директория.
$ls-на
Изпълнете следната команда за търсене на тези файлове, чиито имена са четири знака и са неизвестни.
$ ls -l ????. txt
Пример-2:
Да предположим, че искате да търсите в тези файлове с документи, чиито имена са дълги 8 знака, първите 4 знака са f, o, o и T и разширение е док . Изпълнете следната команда с шаблон за глобиране, за да търсите файловете.
$ls -накрак ????. doc
Пример-3:
Да предположим, че знаете, че името на файла е „Най -доброто“ и разширението е с 3 знака, но не знам разширението. Изпълнете следната команда, като използвате ‘? “, За да търсите във всички файлове с името„ тест “с разширение с дължина три знака.
$ls -нанай -добре. ???
Звездичка - (*)
‘*’ се използва за съвпадение на нула или повече знаци. Ако имате по -малко информация за търсене във всеки файл или информация, можете да използвате ‘*’ по модел на глобусиране.
Пример -1:
Да предположим, че искате да търсите във всички файлове на „Pl“ разширение. Изпълнете следната команда, като използвате ‘*’ да свърши тази задача.
$ls -на *.pl
Пример-2:
Да предположим, че знаете само началния знак на името на файла, което е 'да се' . Изпълнете следната команда, използвайки „*“, за да търсите във всички файлове от текущата директория, чиито имена започват 'да се' .
$ls -нада се*.*
Пример-3:
Можете да приложите „*“ в bash скрипт за различни цели, без да търсите файлове. Създайте bash файл с име „Check.sh“ със следния скрипт. Тук, когато потребителят въведе „ y “или„ Y “или„ да “или„ да “ тогава „Потвърдено“ ще се отпечата и кога типът ще въведе „N“ или „N“ или „не“ или „не“ тогава 'Непотвърдено' ще отпечата.
#!/bin/bashизхвърлен „Искате ли да потвърдите?“
Прочетиотговор
случай $ отговор в
[Да]* ) изхвърлен „потвърдено“.;;
[Не]* ) изхвърлен 'Непотвърдено.';;
*) изхвърлен 'Опитай пак.';;
esac
Стартирайте скрипта.
$башcheck.sh
Квадратна скоба - ([])
‘[]’ се използва за съвпадение на знака от диапазона. Някои от най -често използваните декларации за обхват са споменати по -долу.
Всички главни букви се дефинират от обхвата като, [: горен:] или [A-Z].
Всички малки букви се дефинират от обхвата като, [: малки:] или [a-z].
Всички цифрови цифри се определят от обхвата като, [: цифра:] или [0-9].
Всички главни и малки букви се дефинират от обхвата като, [: alpha:] или [a-zA-z].
Всички главни букви, малки букви и цифри се определят от обхвата като, [: alnum:] или [a-zA-Z0-9]
Пример -1:
Изпълнете следната команда, за да търсите във всички файлове и папки, чието име съдържа стр или Какво или r или с .
$ls -на [p-s]*
Пример-2:
Изпълнете следната команда, за да търсите във всички файлове и папки, чието име започва с произволна цифра от 1 до 5.
$ls -на [1-5]*
Липсва му - (^)
Можеш да използваш ‘^’ с квадратна скоба за по -конкретно определяне на модела на глобусиране. ‘^’ може да се използва вътре или извън квадратна скоба. „^“ Се използва извън квадратната скоба за търсене на съдържанието на файла, което започва с даден диапазон от знаци. ‘^’ Се използва в квадратните скоби, за да покаже цялото съдържание на файла, като маркира редовете, започващи с даден диапазон от знаци. Можете да използвате различни типове шаблони за глобиране за търсене на конкретно съдържание от файл. 'захващане' командата се използва за търсене на съдържание в bash. Да предположим, че имате текстов файл с име „List.txt“ със следното съдържание. Тествайте следните примери за този файл.
Apple4000
Банан
700
Оранжево
850
Круша
9000
jackdruit
Пример - 1:
Изпълнете следната команда, за да търсите тези редове от list.txt файл, който започва с P или Q или R .
$ grep '^[P-R]' list.txt
Пример - 2:
Изпълнете следната команда, за да маркирате тези редове от list.txt файл, който започва с A или B или C .
$ 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 знака и разширението е 'Ш' или последните два знака на файловете са „St“ и разширението е 'текст' .
$ ls -l {?????. sh,*st.txt}
Пример - 2:
Изпълнете следната команда, за да изтриете всички файлове, чиито разширения са „Doc“ или „docx“ .
$rm {*.doc,*.docx}
Тръба - (|)
Знакът '|' се използва и за прилагане на повече от едно условие към шаблона за глобулиране. Всеки модел е разделен със символа „|“ в командата.
Пример - 1:
Изпълнете следната команда, за да търсите онези имена на файлове, които започват с символ „а“ и имат разширение „bash“ или „sh“.
$lsда се*+(.bash|.sh)Пример - 2:
Създайте bash файл с име „Menu.bash“ и добавете следния скрипт. Ако типът потребител 1 или S след това ще се отпечата Търсене на текст . Ако типът потребител 2 или R. след това ще се отпечата Замяна на текст . Ако типът потребител 3 или D. след това ще се отпечата Изтриване на текст . Той ще отпечата Опитай пак за всеки друг вход.
#!/bin/bashизхвърлен „Изберете всяка опция от менюто:“
Прочетиотговор
случай $ отговор в
1 |С) изхвърлен „Търсене на текст“;;
2 |R) изхвърлен „Замяна на текст“;;
3 |д) изхвърлен „Изтриване на текст“;;
*) изхвърлен 'Опитай пак.';;
esac
Стартирайте скрипта.
$башmenu.bash
ЗАКЛЮЧЕНИЕ
Някои от най -често използваните модели на глобулиране са обяснени в този урок с помощта на много прости примери. Надявам се, че след като практикувате горните примери, концепцията за глобулиране ще ви бъде ясна и ще можете да я приложите успешно в bash команди и скриптове.
За повече информация вижте това видео: