zástupný znak je znak, který může být použit jako náhrada pro všechny třídy znaků ve vyhledávání, čímž se významně zvyšuje flexibilitu a efektivitu vyhledávání.
zástupné znaky se běžně používají v příkazech shellu v Linuxu a dalších unixových operačních systémech. Shell je program, který poskytuje uživatelské rozhraní pouze pro text a jehož hlavní funkcí je provádět příkazy zadané uživateli a zobrazovat jejich výsledky.
zástupné znaky se také používají v regulárních výrazech a programovacích jazycích. Regulární výraz je vzor odpovídající systém, který používá řetězce (tj. sekvence znaků), postavené podle předem definovaných pravidla syntaxe najít požadované řetězce v textu.
termín zástupný znak nebo divoká karta byl původně používán v karetních hrách k popisu karty, které může být přiřazena jakákoli hodnota, kterou si její držitel přeje. Jeho použití se však rozšířilo tak, že se nyní používá k popisu neznámého nebo nepředvídatelného faktoru v různých oblastech.
Star Wildcard
s příkazy Linuxu se používají tři typy zástupných znaků. Nejčastěji používaným a obvykle nejužitečnějším je zástupný znak hvězdy, který je stejný jako hvězdička (*). Hvězdný zástupný znak má nejširší význam některého z zástupných znaků, protože může představovat nulové znaky, všechny jednotlivé znaky nebo jakýkoli řetězec.
jako příklad příkaz Soubor poskytuje informace o jakémkoli objektu souborového systému (tj. souboru, adresáři nebo odkazu), který je mu poskytnut jako argument (tj. vstup). Protože zástupný znak star představuje každý řetězec, může být použit jako argument pro soubor k vrácení informací o každém objektu v zadaném adresáři. Následující by tedy zobrazovalo informace o každém objektu v aktuálním adresáři (tj.):
file *
pokud nejsou žádné shody, je vrácena chybová zpráva, například*: nelze stat ‚ * ‚ (žádný takový soubor nebo adresář).. V případě tohoto příkladu, jediný způsob, jak by neexistovaly žádné shody, je, kdyby byl adresář prázdný.
zástupné znaky lze kombinovat s jinými znaky, které představují části řetězců. Například reprezentovat jakýkoli objekt souborového systému, který má .jpg přípona souboru, *.bude použit jpg. Podobně,* by zastupovala všechny objekty, které začínají malými písmeny (tj. malé) písmeno a.
Jako další příklad, následující by se říct, ls (který se používá k zobrazení seznamu souborů) poskytnout jména všech souborů v aktuálním adresáři, které mají .html nebo a .rozšíření txt:
ls *.html *.txt
Podobně, tyto by se říct, rm příkaz (který se používá k odstranění souborů a adresářů) odstranit všechny soubory v aktuálním adresáři, které mají řetězec xxx v jejich jménu:
rm *xxx*
otazník Zástupný znak
otazník (?) se používá jako zástupný znak v příkazech shellu k reprezentaci přesně jednoho znaku, což může být libovolný znak. Tak, dva otazníky za sebou by představovat dva znaky za sebou, a tři otazníky za sebou by reprezentovat libovolný řetězec skládající se ze tří znaků.
Tak, například, následující by vrátit data o všech objektech v aktuálním adresáři, jejichž jména, včetně jejich prodloužení, jsou přesně tři znaků:
file ???
A následující bude poskytovat data pro všechny objekty, jejichž názvy jsou jeden, dva nebo tři znaky:
file ? ?? ???
stejně jako u zástupného znaku star lze zástupný znak otazníku použít v kombinaci s jinými znaky. Například, následující by poskytnout informace o všech objektů v aktuálním adresáři, které začínají písmenem a a jsou pět znaků v délce:
file a????
otazník zástupné znaky mohou být také použity v kombinaci s jinými zástupné znaky, když byly odděleny některé další postavy. Například následující vrátí seznam všech souborů v aktuálním adresáři, které mají tři znaky názvu souboru:
ls *.???
hranaté Závorky Zástupný znak
třetí typ zástupných znaků v příkazech shellu je dvojice hranatých závorek, který může reprezentovat libovolné znaky uzavřené v závorkách. Takto by například následující informace poskytly informace o všech objektech v aktuálním adresáři, které mají v sobě x, y a / nebo z:
file **
A následující bude seznam všech souborů, které měly příponu, která začíná s x, y nebo z:
ls *.*
stejných výsledků lze dosáhnout pouze pomocí hvězdičku a otazník zástupné znaky. Je však zjevně efektivnější používat zástupný znak závorky.
je-li spojovník použit mezi dvěma znaky v hranatých závorkách zástupný znak, označuje rozsah včetně těchto dvou znaků. Například, následující bude poskytovat informace o všech objektů v aktuálním adresáři, které začínají každé písmeno od a až f:
file *
A následující bude poskytovat informace o každém objektu v aktuálním adresáři, jejichž název obsahuje alespoň jednu číslici:
file **
Použití hranatých závorek pro označení rozsah může být v kombinaci s jeho pomocí uvést seznam. Tak, například, následující by poskytnout informace o všech souborového systému objekty, jejichž názvy začínají na každé písmeno od a do c, nebo začít s s nebo t:
file *
Podobně, více sad rozsahů může být zadán. Tak, například, následující vrátí informace o všech objektů, jejichž názvy začínají s první tři, nebo poslední tři malá písmena abecedy:
file *
Někdy to může být užitečné mít posloupnost hranatá závorka zástupné znaky. Například, následující by se zobrazí názvy všech souborů v aktuálním adresáři, které se skládají z jones následuje třímístné číslo:
ls jones