een jokertekens is een teken dat kan worden gebruikt als vervanging voor een van de klassen van tekens in een zoekopdracht, waardoor de flexibiliteit en efficiëntie van zoekopdrachten aanzienlijk wordt verhoogd.
jokertekens worden vaak gebruikt in shell-commando ‘ s in Linux en andere Unix-achtige besturingssystemen. Een shell is een programma dat een tekst-only gebruikersinterface biedt en waarvan de belangrijkste functie is om commando ‘ s uit te voeren die door gebruikers zijn ingevoerd en hun resultaten weer te geven.
jokertekens worden ook gebruikt in reguliere expressies en programmeertalen. Reguliere expressies zijn een patroon matching systeem dat strings gebruikt (dat wil zeggen, sequenties van tekens) geconstrueerd volgens vooraf gedefinieerde syntaxis regels om gewenste strings in tekst te vinden.
de term wildcard of wild card werd oorspronkelijk gebruikt in kaartspellen om een kaart te beschrijven die elke gewenste waarde kan krijgen. Echter, het gebruik ervan heeft zich verspreid, zodat het nu wordt gebruikt om een onbekende of onvoorspelbare factor in een verscheidenheid van gebieden te beschrijven.
Star jokertekens
drie typen jokertekens worden gebruikt met Linux-commando ‘ s. De meest gebruikte en meestal nuttigste is de ster Joker, die hetzelfde is als een sterretje (*). De star wildcard heeft de breedste betekenis van een van de wildcards, omdat het nul karakters, alle afzonderlijke karakters of een string kan vertegenwoordigen.
als voorbeeld geeft het bestand Commando informatie over elk bestandssysteem object (dat wil zeggen, bestand, map of link) dat aan het gegeven wordt als argument (dat wil zeggen, input). Omdat het star jokerteken elke string vertegenwoordigt, kan het gebruikt worden als het argument voor bestand om informatie te retourneren over elk object in de opgegeven map. Zo zou het volgende informatie weergeven over elk object in de huidige map (dat wil zeggen, de map waarin de gebruiker momenteel werkt):
file *
als er geen overeenkomsten zijn, wordt een foutmelding geretourneerd, zoals*: can ’t stat’ * ‘ (geen bestand of map).. In het geval van dit voorbeeld, de enige manier dat er geen overeenkomsten zou zijn is als de directory leeg was.
jokertekens kunnen worden gecombineerd met andere tekens om delen van tekenreeksen weer te geven. Bijvoorbeeld, om een bestandssysteem object te vertegenwoordigen dat een heeft .JPG bestandsnaam extensie,*.jpg zou worden gebruikt. Op dezelfde manier zou a* alle objecten vertegenwoordigen die beginnen met een kleine letter a.
als een ander voorbeeld zou het volgende het ls commando (dat wordt gebruikt om bestanden te tonen) vertellen om de namen van alle bestanden in de huidige map op te geven die een hebben .html of a .txt-extensie:
ls *.html *.txt
ook zou het volgende het RM commando (dat wordt gebruikt om bestanden en mappen te verwijderen) vertellen om alle bestanden in de huidige map te verwijderen die de string xxx in hun naam hebben:
rm *xxx*
vraagteken Joker
het vraagteken (?) wordt gebruikt als een jokerteken in shell commando ‘ s om precies één teken te representeren, wat elk enkel teken kan zijn. Twee opeenvolgende vraagtekens zouden dus twee opeenvolgende tekens vertegenwoordigen, en drie opeenvolgende vraagtekens zouden een reeks van drie tekens vertegenwoordigen.
zo worden bijvoorbeeld gegevens geretourneerd over alle objecten in de huidige map waarvan de namen, inclusief eventuele uitbreidingen, exact drie tekens lang zijn:
file ???
en het volgende levert gegevens op over alle objecten waarvan de namen één, twee of drie tekens lang zijn:
file ? ?? ???
zoals het geval is met de star wildcard, kan het vraagteken wildcard worden gebruikt in combinatie met andere tekens. Het volgende geeft bijvoorbeeld informatie over alle objecten in de huidige map die beginnen met de letter a en vijf tekens lang zijn:
file a????
het vraagteken jokerteken kan ook gebruikt worden in combinatie met andere jokertekens wanneer ze gescheiden worden door een ander teken. Bijvoorbeeld, het volgende retourneert een lijst van alle bestanden in de huidige map die een drie-karakter bestandsnaamuitbreiding hebben:
ls *.???
vierkante haakjes Wildcard
het derde type wildcard in shell-commando ‘ s is een paar vierkante haken, die elk van de tekens tussen de haakjes kunnen vertegenwoordigen. Zo zou bijvoorbeeld het volgende informatie geven over alle objecten in de huidige directory die een x, y en / of z in hen hebben:
file **
en het volgende zou een lijst van alle bestanden die een extensie die begint met x, y of z had:
ls *.*
dezelfde resultaten kunnen worden bereikt door alleen de ster-en vraagteken-jokertekens te gebruiken. Het is echter duidelijk efficiënter om de bracket wildcard te gebruiken.
wanneer een koppelteken wordt gebruikt tussen twee tekens tussen de vierkante haakjes jokertekens, geeft dit een bereik aan waarin deze twee tekens voorkomen. Bijvoorbeeld, het volgende zou informatie geven over alle objecten in de huidige map die beginnen met een letter van A tot en met f:
file *
en het volgende geeft informatie over elk object in de huidige map waarvan de naam ten minste één cijfer bevat:
file **
het gebruik van vierkante haken om een bereik aan te geven kan worden gecombineerd met het gebruik ervan om een lijst aan te geven. Dus, bijvoorbeeld, het volgende zou informatie geven over alle bestandssysteem objecten waarvan de namen beginnen met een letter van a tot en met c of beginnen met s of t:
file *
ook kunnen meerdere reeksen bereiken worden gespecificeerd. Zo, bijvoorbeeld, het volgende zou informatie over alle objecten waarvan de namen beginnen met de eerste drie of de laatste drie kleine letters van het alfabet retourneren:
file *
soms kan het nuttig zijn om een opeenvolging van vierkante beugel wildcards hebben. Bijvoorbeeld, het volgende toont alle bestandsnamen in de huidige map die bestaan uit jones gevolgd door een drie-cijferig getal:
ls jones