Vzor vyhledávání

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 11. dubna 2016; kontroly vyžadují 9 úprav .

Vzor vyhledávání ( anglicky  wildcard pattern, glob pattern ) je metoda popisu vyhledávacího dotazu pomocí metaznaků ( zástupných znaků ).

Shell Templates

Dva nejběžněji používané znaky jsou hvězdička ( * ) pro nahrazení libovolného řetězce znaků a otazník ( ? ) pro nahrazení libovolného jednotlivého znaku .

V tomto případě může * také znamenat prázdný řetězec (bez znaků). Například osamělá hvězda je vzor, ​​který odpovídá všem adresářovým souborům, které jsou pro tento vzor hledány. Použití šablony *.html vybere všechny html soubory a šablona my*.odt vybere soubory, které začínají na „my“ a končí na „.odt“. Vzor *2010* odpovídá všem souborům, jejichž názvy obsahují skupinu znaků 2010.

Otazník ( ? ) ve vzoru označuje libovolný jednotlivý znak. Například pod šablonou zprávy.??? budou stačit soubory s libovolnou příponou o třech písmenech, ale začínající přesně tak, jak je uvedeno v šabloně. Notace descrip?ion.pdf najde soubory s daným názvem, ale místo otazníku lze použít jakýkoli znak (například s nebo t). Je zřejmé, že zástupné znaky otazníku jsou méně časté než hvězdičky.

Existují také složitější pravidla pro psaní šablon. Například použití hranatých závorek ([ ]) se seznamem možných hodnot umožňuje flexibilnější vyhledávání souborů. Předpokládejme, že je nutné najít všechny soubory, jejichž názvy začínají písmenem m, přičemž se vyžaduje, aby se nerozlišovala malá a velká písmena. Vzor pak bude vypadat takto: [mM]* . Pokud chcete současně najít soubory, které začínají po sobě jdoucími písmeny v abecedě, můžete určit rozsah. Například šablona [m-pM-P]???.png bude odpovídat všem souborům png, jejichž názvy se skládají ze čtyř písmen, přičemž první písmeno m nebo n nebo o nebo p nerozlišuje malá a velká písmena.

Příklady příkazů shellu POSIX (Bourne) :

cat * >concat # Zřetězí všechny soubory v aktuálním adresáři do jednoho rm *.??? # Smaže všechny soubory v aktuálním adresáři, které mají tříznakovou příponu

Šablony v DBMS

V programech pro správu databází, jako je SQL , se místo *  namísto ? podtržítko _. V aplikaci Microsoft Access a konkrétněji v jejich skriptovacích jazycích lze ve výrazech „LIKE“ použít zástupné znaky.

Vzorové šablony

Vzorek Shoda
boo?.tmp book.tmp, boot.tmp, boo1.tmp atd.
boo[tk].tmp boot.tmp a book.tmp
b*tt?p boot.tep, bat.tmp, bt.tnp atd.
[ac]3.bat a3.bat, b3.bat a c3.bat

Regulární výrazy

V regulárních výrazech byl koncept zástupných znaků dále rozvinut. Mají speciální zápisy nejen pro jeden (."") a libovolný počet (kvantifikátor "*") znaků, ale také pro různé třídy znaků (například prázdné znaky "\s"), alternativní výrazy ("|" ) a mnoho dalšího.

Účel šablon

Někdy je při práci se soubory nutné nebo možné zadat pouze část jejich názvu nebo přípony. Děje se tak například proto, abychom v parametrech programu nepojmenovali úplně všechny soubory, na kterých se operace provádí, ale vybrali je do skupiny podle nějakého atributu (všimněte si, že některé programy nepracují s jednotlivými soubory, ale se skupinou). Může být také nutné najít soubor nebo soubory, jejichž úplný název a/nebo přípony nejsou známy. Pro tyto účely se používají tzv. šablony.

Příkazové shelly Linuxu ( shell , bash atd.), stejně jako různé programovací jazyky, vám umožňují vybrat (prohledávat) určité skupiny z různých názvů souborů a adresářů pomocí takzvaných vzorů názvů souborů. Příkazový shell porovná další soubor se šablonou, a pokud se do této šablony „vejde“, bude vzat v úvahu, pokud ne, bude přeskočen. Zhruba lze šablonu přirovnat k jakési krabičce, do které se nevejde každý předmět, a to nejen velikostí, ale i nesouladem křivek krabičky a předmětu.

Shell bash sdílí vzory s mnoha příkazy. Například ls (procházení adresářů), cp (kopírování souborů), find (hledání souborů) atd. Příkazům však není předána šablona, ​​ale soubor (skupina souborů), který pod ni již spadá. Příkazový shell sám určuje objekty, které odpovídají vzoru.

Viz také

Odkazy