"Глоббинг"датотеке (са Дир.глоб) у Руби-у омогућава вам да одаберете само датотеке које желите, као што су све КСМЛ датотеке, у датој мапи. Иако Дир.блог је као регуларних израза, није. Веома је ограничен у поређењу са Рубирегуларни изрази и ближе су повезани с надимцима за проширење љуске.
Супротно глобовању, итерирању над свим датотекама у директоријуму, може се урадити помоћу Дир.фореацх метод.
Пример
Следећи глоб ће одговарати свим датотекама које се завршавају .рб у текући директоријум. Користи једну замишљену звездицу. Звездица ће одговарати нула или више знакова, тако да било која датотека која завршава .рб ће одговарати овом глобусу, укључујући датотеку која се зове једноставно .рб, без ичега пре екстензије датотеке и претходног периода. Метода глоб ће вратити све датотеке које се подударају са глоблоб правилима као низ, који се могу сачувати за каснију употребу или поновити.
#! / уср / бин / енв рубин
Дир.глоб ('*. Рб'). Сваки до | ф |
ставља ф
крај
Вилдцардс и још много тога
Постоји само неколико замјенских знакова:
- * - Поклапајте нула или више знакова. Глобус који се састоји само од звездица и ниједног другог знака или замјенског знака неће се подударати са свим датотекама у тренутном директорију. Звездица се обично комбинује са екстензијом датотеке, ако не и више знакова да би сузили претрагу.
- ** - Поклапајте све директоријуме рекурзивно. Ово се користи за спуштање у стабло директорија и проналажење свих датотека у поддиректорима тренутног директорија, а не само датотека у тренутном директорију. Ова замјенска карта се истражује у примјеру доњег кода.
- ? - Поклапајте било који знак. Ово је корисно за проналажење датотека чије се име налази у одређеном формату. На пример, 5 знакова и .кмл екстензија могу бити изражени као ... кмл.
- [а-з] - Поклапајте било који знак у скупу знакова. Скуп може бити или листа знакова или опсег одвојен делом знака. Скуп знакова прати исту синтаксу као и понаша се на исти начин као и скупови знакова у регуларним изразима.
- {а, б} - Поклапајте образац а или б. Иако ово изгледа као квантификат регуларног израза, није. На пример, у правилном изражавању, образац а {1,2} ће одговарати 1 или 2 'а' знакова. У глобингу ће одговарати низу а1 или а2. Унутар ове конструкције могу се угнијездити остали обрасци.
Једна ствар коју треба узети у обзир је осетљивост предмета. Да ли ће оперативни систем утврдити да ли ТЕСТ.ткт и Тест. ТкТ односе се на исту датотеку. У Линуку и другим системима, то су различите датотеке. У Виндовс-у ће се оне односити на исту датотеку.
Оперативни систем је такође одговоран за редослед приказа резултата. Може се разликовати ако сте у систему Виндовс у односу на Линук, на пример.
Још једна ствар коју треба напоменути је Дир [глобстринг] практичност метода. Ово је функционално исто Дир.глоб (глобстринг) и такође је семантички тачно (индексирате директориј, слично као низ). Из тог разлога, можете видети Дир [] чешће од тога Дир.глоб, али они су иста ствар.
Примери коришћења Вилдцардс
Следећи пример програма показат ће што више образаца у многим различитим комбинацијама.
#! / уср / бин / енв рубин
# Набавите све .кмл датотеке
Дир ['*. Ксмл']
# Набавите све датотеке са 5 знакова и .јпг екстензијом
Дир ['... јпг']
# Набавите све јпг, пнг и гиф слике
Дир ['*. {Јпг, пнг, гиф}']
# Спустите се у стабло директорија и добили све јпг слике
# Напомена: ово ће такође уметнути јпг слике у тренутни директориј
Дир ['** / *. Јпг']
# Спустите се у све директоријуме који почињу са Уни и пронађите све
# јпг слике.
# Напомена: ово се спушта само по један директориј
Дир ['Уни ** / *. Јпг']
# Спустите се у све директоријуме почевши од Уни и сви
# поддиректоријуми директорија који почињу са Уни и проналазе
# алл .јпг слике
Дир ['Уни ** / ** / *. Јпг']