Hakumalli ( englanniksi wildcard pattern, glob pattern ) on tapa kuvata hakukysely metamerkkejä ( jokerimerkkejä ) käyttäen.
Kaksi yleisimmin käytettyä merkkiä ovat tähti ( * ), joka korvaa minkä tahansa merkkijonon, ja kysymysmerkki ( ? ) , joka korvaa minkä tahansa yksittäisen merkin .
Tässä tapauksessa * voi tarkoittaa myös tyhjää merkkijonoa (ei merkkejä). Esimerkiksi yksittäinen tähti on kuvio, joka vastaa kaikkia hakemistotiedostoja, jotka on haettu kyseisellä kuviolla. *.html-mallin käyttäminen valitsee kaikki html-tiedostot, ja my*.odt-malli valitsee tiedostot, jotka alkavat "my" ja päättyvät ".odt". Malli *2010* vastaa kaikkia tiedostoja, joiden nimet sisältävät 2010 merkkiryhmän.
Kysymysmerkki ( ? ) kuviossa tarkoittaa mitä tahansa yksittäistä merkkiä. Esimerkiksi malliraportin alla.??? tiedostot, joiden pääte on kolme kirjainta, mutta jotka alkavat täsmälleen mallissa määritetyllä tavalla, käyvät. Descrip ?ion.pdf-merkintä löytää tiedostot, joilla on annettu nimi, mutta mitä tahansa merkkiä (kuten s tai t) voidaan käyttää kysymysmerkin sijasta. Kysymysmerkkien jokerimerkit ovat selvästi vähemmän yleisiä kuin tähdet.
Mallien kirjoittamiseen on myös monimutkaisempia sääntöjä. Esimerkiksi hakasulkeiden ([ ]) käyttö mahdollisten arvojen luettelon kanssa mahdollistaa joustavamman tiedostohaun. Oletetaan, että on löydettävä kaikki tiedostot, joiden nimet alkavat kirjaimella m, mutta kirjainkoolla ei ole merkitystä. Sitten kuvio näyttää tältä: [mM]* . Jos haluat etsiä samanaikaisesti tiedostoja, jotka alkavat aakkosten peräkkäisillä kirjaimilla, voit määrittää alueen. Esimerkiksi malli [m-pM-P]???.png vastaa kaikkiin png-tiedostoihin, joiden nimet koostuvat neljästä kirjaimesta, jolloin ensimmäinen kirjain m tai n tai o tai p ei välitä kirjainkoosta.
POSIX (Bourne) shell -komentoesimerkkejä :
cat * >concat # Yhdistää kaikki nykyisen hakemiston tiedostot yhdeksi rm *.??? # Poistaa kaikki nykyisen hakemiston tiedostot, joissa on kolmimerkkinen jälkiliiteTietokannan hallintaohjelmissa, kuten SQL , käytetään prosenttimerkkiä % * :n sijaan, ? alaviiva _. Microsoft Accessissa ja tarkemmin niiden komentosarjakielissä jokerimerkkejä voidaan käyttää "LIKE"-lausekkeissa.
Näyte | Yhdenmukaisuus |
---|---|
boo?.tmp | book.tmp, boot.tmp, boo1.tmp jne. |
boo[tk].tmp | boot.tmp ja book.tmp |
b*tt?p | boot.tep, bat.tmp, bt.tnp jne. |
[ac]3.bat | a3.bat, b3.bat ja c3.bat |
Säännöllisissä lausekkeissa yleismerkkien käsitettä on kehitetty edelleen. Niissä ei ole erikoismerkintöjä vain yhdelle (.") ja mille tahansa numerolle (kvantifioija "*"), mutta myös eri merkkiluokille (esimerkiksi tyhjät merkit "\s"), vaihtoehtoisille lausekkeille ("|" ) ja paljon muuta.
Joskus tiedostojen kanssa työskenneltäessä on tarpeen tai mahdollista määrittää vain osa niiden nimestä tai tunnisteesta. Tämä tehdään esimerkiksi siksi, että kaikkia tiedostoja, joille toiminto suoritetaan, ei nimetä kokonaan ohjelman parametreissä, vaan valitaan ne ryhmässä jonkin määritteen mukaan (huomaa, että jotkut ohjelmat eivät toimi yksittäisten tiedostojen kanssa, vaan ryhmän kanssa). Saattaa myös olla tarpeen löytää tiedosto tai tiedostot, joiden koko nimeä ja/tai tunnisteita ei tunneta. Näihin tarkoituksiin käytetään niin kutsuttuja malleja.
Linuxin komentotulkit ( shell , bash jne.) sekä erilaiset ohjelmointikielet mahdollistavat tiettyjen ryhmien valitsemisen (haun) useista tiedosto- ja hakemistonimistä käyttämällä niin kutsuttuja tiedostonimimalleja. Komentotulkki vertaa seuraavaa tiedostoa malliin, ja jos se "sopii" tähän malliin, se huomioidaan, jos ei, ohitetaan. Karkeasti mallia voidaan verrata eräänlaiseen laatikkoon, johon kaikki esineet eivät mahdu, eikä vain koon, vaan myös laatikon ja esineen käyrien epäsuhtaisuuden vuoksi.
Bash - kuori jakaa kuvioita monilla komennoilla. Esimerkiksi ls (selaa hakemistoja), cp (kopioi tiedostoja), find (hae tiedostoja) jne. Komennot eivät kuitenkaan välitetä mallipohjaa, vaan sen alle jo tullutta tiedostoa (tiedostoryhmää). Komentotulkki itse määrittää mallia vastaavat objektit.