Glob - Biblioteka.sk

Upozornenie: Prezeranie týchto stránok je určené len pre návštevníkov nad 18 rokov!
Zásady ochrany osobných údajov.
Používaním tohto webu súhlasíte s uchovávaním cookies, ktoré slúžia na poskytovanie služieb, nastavenie reklám a analýzu návštevnosti. OK, súhlasím


Panta Rhei Doprava Zadarmo
...
...


A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Glob
 ...

Globy jsou v oblasti programování řetězce obsahující žolíkový znak a řetězec. Vytváření globů se nazývá globování. Například příkaz v programovacím jazyce Bash mv *.txt textfiles/ přesune všechny txt soubory z aktuálního adresáře do adresáře textfiles. V tomto případě je * žolíkový znak pro jakýkoli řetězec znaků vyjma znaku /, část *.txt je glob. Dalším běžným zástupným znakem je otazník (?), který zastupuje jeden znak. Například mv ?.txt shorttextfiles/ přesune všechny txt soubory pojmenované jedním znakem z aktuálního adresáře do adresáře shorttextfiles, zatímco ??.txt bude odpovídat všem textovým souborům, jejichž název se skládá ze 2 znaků.

Kromě shody názvů souborů se globs také široce používají pro porovnávání libovolných řetězců (shoda zástupných znaků). V této funkci je společným rozhraním fnmatch.

Původ

Snímek obrazovky původní referenční stránky Unixu z roku 1971 pro glob

Příkaz glob, zkratka pro global (česky globální), pochází z nejstarších verzí Unixu.[1] Interpreti příkazů raných verzí Unixu (1. až 6. vydání, 1969–1975) se spoléhali na samostatný program pro rozšíření zástupných znaků v argumentech bez uvozovek na příkaz glob. Tento program provedl rozšíření a dodal rozšířený seznam cest k souboru příkazu k provedení.

Glob byl původně napsán v programovacím jazyce B.[2] Později byla tato funkce přidána do knihovny programovacího jazyka C. Tuto funkci ve formátu glob(), používají programy jako je shell. Obvykle je definována na základě funkce s názvem fnmatch(), která testuje, zda řetězec odpovídá danému vzoru – program používající tuto funkci pak může iterovat řadu řetězců (obvykle názvy souborů), aby určil, které z nich jsou si rovny. Obě funkce jsou součástí dokumentace POSIX: funkce definované v POSIX.1 od roku 2001 a syntaxe definovaná v POSIX.2.[3][4]

Globy nanehrazují unixové označení skrytých souborů. Pokud má glob zahrnout i skrytý soubor, který bývá na začátku označen čárkou, musí se před zástupný znak vložit tečka. Například * odpovídá všem viditelným souborům, zatímco .* odpovídá všem skrytým souborům.

Syntax

Nejběžnější žolíkové znaky jsou *, ? a .

Žolíkový znak Popis Příklad Odpovídá Neodpovídá
* odpovídá libovolnému počtu libovolných znaků včetně žádného řád* řád, řády, řád a neřád neřád, ád
*řád* řád, řády, řády a neřády, neřád řá
? odpovídá libovolnému jednotlivému znaku ?es Pes, pes, bes es, náves, eso
??? odpovídá libovolným třem znakům ???es náves, 256es, a pes pes, es, maxipes
odpovídá jednomu znaku uvedenému v závorce es Pes, Ves pes, ves, PVes, Les, les, náves, Eso
odpovídá jednomu znaku z rozsahu (závislého na národním prostředí) uvedeného v závorce es aes, bes, ces, česzes žes, es, a pes

Obvykle se znak oddělovače cesty (/ na Linuxu/Unixu, MacOS atd. nebo \ na Windows) nikdy nebude shodovat. Některé shelly, jako je Bash, mají funkce, které uživatelům umožňují toto obejít.[5]

Systémy na bázi Unix

Na systémech podobných Unixu fungují znaky * a ? tak, jak je uvedeno výše, zatímco řetězec má dva další významy:[6][7]

Žolýkový znak Popis Příklad Odpovídá Neodpovídá
odpovídá jednomu znaku, který není uveden v závorce es les, Les, pes Pes
odpovídá jednomu znaku, který není z rozsahu uvedeného v závorce es aes, bes, žes, es, a pes ces, pes, les

Rozsahy mohou také zahrnovat předdefinované třídy znaků, třídy ekvivalence pro znaky s diakritikou a symboly řazení pro znaky, které se obtížně zadávají. Jsou definovány tak, aby odpovídaly hranatým závorkám v regulárních výrazech standardu POSIX.[6][7]

Unixové globování je řešeno shellem podle POSIXu. Globuje se s názvy souborů na příkazovém řádku a v shellových skryptech. Příkaz case v shellu nařízený POSIXem poskytuje porovnávání vzorů pomocí vzorů glob.

Některé shelly (jako je C shell a Bash) podporují další syntaxi známou jako alternace nebo expanze složených závorek. Protože to není součástí syntaxe glob, není poskytováno v case. Rozbaluje se pouze na příkazovém řádku před globováním.

Shell Bash také podporuje následující rozšíření:[8]

  • Rozšířené globování (extglob): umožňuje použití jiných operátorů pro párování vzorů s více výskyty vzoru uzavřeného v závorkách, což v podstatě poskytuje chybějící kleene hvězdu a alternaci pro popis regulárních jazyků. Lze jej povolit nastavením možnosti extglob shell. Tato možnost pochází z Korn shellu verze 3.[9] GNU fnmatch a glob mají totožné rozšíření.[3]
  • globstar: umožňuje, aby ** jako komponenta názvu rekurzivně odpovídala libovolnému počtu vrstev neskrytých adresářů.[9] Podporováno také knihovnami Javascriptu a globováním v Pythonu[10].

Odkazy

Reference

V tomto článku byl použit překlad textu z článku glob (programming) na anglické Wikipedii.

  1. Wayback Machine. web.archive.org . 2000-08-29 . Dostupné v archivu pořízeném z originálu dne 2000-08-29. 
  2. https://www.cs.dartmouth.edu/~doug/reader.pdf
  3. a b fnmatch(3) - Linux manual page. man7.org . . Dostupné online. 
  4. glob(3) - Linux manual page. man7.org . . Dostupné online. 
  5. Bash Reference Manual. www.gnu.org . . Dostupné online. 
  6. a b Shell Command Language. pubs.opengroup.org . cit. 2023-04-24. Dostupné online. 
  7. a b glob(7) - Linux manual page. man7.org online. cit. 2023-04-24. Dostupné online. 
  8. glob - Greg's Wiki. mywiki.wooledge.org online. cit. 2023-04-24. Dostupné online. 
  9. a b Pattern Matching (Bash Reference Manual). www.gnu.org online. cit. 2023-04-24. Dostupné online. 
  10. BOYLE, Tara. The Python Glob Module. Medium online. 2021-01-16 cit. 2023-04-24. Dostupné online. (anglicky) 
Zdroj:https://cs.wikipedia.org?pojem=Glob
Text je dostupný za podmienok Creative Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších podmienok. Podrobnejšie informácie nájdete na stránke Podmienky použitia.






Text je dostupný za podmienok Creative Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších podmienok.
Podrobnejšie informácie nájdete na stránke Podmienky použitia.

Your browser doesn’t support the object tag.

www.astronomia.sk | www.biologia.sk | www.botanika.sk | www.dejiny.sk | www.economy.sk | www.elektrotechnika.sk | www.estetika.sk | www.farmakologia.sk | www.filozofia.sk | Fyzika | www.futurologia.sk | www.genetika.sk | www.chemia.sk | www.lingvistika.sk | www.politologia.sk | www.psychologia.sk | www.sexuologia.sk | www.sociologia.sk | www.veda.sk I www.zoologia.sk