ett jokertecken är ett tecken som kan användas som ett substitut för någon av en klass av tecken i en sökning, vilket kraftigt ökar flexibiliteten och effektiviteten i sökningar.
jokertecken används ofta i skalkommandon i Linux och andra Unix-liknande operativsystem. Ett skal är ett program som tillhandahåller ett användargränssnitt med endast text och vars huvudsakliga funktion är att utföra kommandon som skrivs in av användare och visa deras resultat.
jokertecken används också i reguljära uttryck och programmeringsspråk. Reguljära uttryck är ett mönstermatchningssystem som använder strängar (dvs. sekvenser av tecken) konstruerade enligt fördefinierade syntaxregler för att hitta önskade strängar i text.
termen wildcard eller wild card användes ursprungligen i kortspel för att beskriva ett kort som kan tilldelas något värde som innehavaren önskar. Användningen har dock spridit sig så att den nu används för att beskriva en okänd eller oförutsägbar faktor inom olika områden.
Star Wildcard
tre typer av jokertecken används med Linux-kommandon. Det vanligaste och oftast mest användbara är stjärnjokertecknet, vilket är detsamma som en asterisk (*). Star wildcard har den bredaste betydelsen av något av jokertecken, eftersom det kan representera nolltecken, alla enskilda tecken eller någon sträng.
som ett exempel tillhandahåller filkommandot information om alla filsystemobjekt (dvs. fil, katalog eller länk) som tillhandahålls det som ett argument (dvs. inmatning). Eftersom stjärnjokertecknet representerar varje sträng kan det användas som argument för att filen ska returnera information om varje objekt i den angivna katalogen. Således skulle följande visa information om varje objekt i den aktuella katalogen (dvs. katalogen där användaren för närvarande arbetar):
file *
om det inte finns några matchningar returneras ett felmeddelande, till exempel *: kan inte stat `*’ (ingen sådan fil eller katalog).. I det här exemplet är det enda sättet att det inte skulle finnas några matchningar om katalogen var tom.
jokertecken kan kombineras med andra tecken för att representera delar av strängar. Till exempel, för att representera alla filsystemobjekt som har en .JPG filnamnstillägg,*.jpg skulle användas. På samma sätt skulle a* representera alla objekt som börjar med en liten bokstav (dvs. liten) bokstav a.
som ett annat exempel skulle följande berätta för ls-kommandot (som används för att lista filer) för att ange namnen på alla filer i den aktuella katalogen som har en .html eller A .Txt förlängning:
ls *.html *.txt
på samma sätt skulle följande berätta för RM-kommandot (som används för att ta bort filer och kataloger) för att radera alla filer i den aktuella katalogen som har strängen xxx i sitt namn:
rm *xxx*
frågetecken Wildcard
frågetecknet (?) används som ett jokertecken i skalkommandon för att representera exakt ett tecken, vilket kan vara ett enda tecken. Således skulle två frågetecken i följd representera två tecken i följd, och tre frågetecken i följd skulle representera vilken sträng som helst som består av tre tecken.
således skulle till exempel följande returnera data om alla objekt i den aktuella katalogen vars namn, inklusive eventuella tillägg, är exakt tre tecken i längd:
file ???
och följande skulle ge data om alla objekt vars namn är en, två eller tre tecken i längd:
file ? ?? ???
som det är fallet med star jokertecken kan frågetecknet jokertecken användas i kombination med andra tecken. Följande skulle till exempel ge information om alla objekt i den aktuella katalogen som börjar med bokstaven a och är fem tecken långa:
file a????
frågetecknet jokertecken kan också användas i kombination med andra jokertecken när de separeras av något annat tecken. Följande skulle till exempel returnera en lista över alla filer i den aktuella katalogen som har ett filnamnstillägg med tre tecken:
ls *.???
hakparenteser jokertecken
den tredje typen av jokertecken i skalkommandon är ett par hakparenteser, som kan representera något av tecknen som är inneslutna i parenteserna. Således skulle till exempel följande Ge information om alla objekt i den aktuella katalogen som har en x, y och/eller z i dem:
file **
och följande skulle lista alla filer som hade en förlängning som börjar med x, y eller z:
ls *.*
samma resultat kan uppnås genom att bara använda star och frågetecken jokertecken. Det är dock klart effektivare att använda konsolens jokertecken.
när ett bindestreck används mellan två tecken i hakparenteserna jokertecken, indikerar det ett intervall inklusive dessa två tecken. Till exempel, följande skulle ge information om alla objekt i den aktuella katalogen som börjar med en bokstav från A till f:
file *
och följande skulle ge information om varje objekt i den aktuella katalogen vars namn innehåller minst en siffra:
file **
användningen av hakparenteserna för att indikera ett intervall kan kombineras med dess användning för att indikera en lista. Således skulle till exempel följande Ge information om alla filsystemobjekt vars namn börjar med någon bokstav från A till c eller börjar med s eller t:
file *
på samma sätt kan flera uppsättningar intervall anges. Således, till exempel, följande skulle returnera information om alla objekt vars namn börjar med de tre första eller de sista tre små bokstäver i alfabetet:
file *
ibland kan det vara bra att ha en följd av kvadratkonsol jokertecken. Till exempel skulle följande visa alla filnamn i den aktuella katalogen som består av jones följt av ett tresiffrigt nummer:
ls jones