Skalet sh

Översikt, 5: Mönster ("regular expressions")

Förutom substitution av variabler och utmatning finns det en ytterligare variant: mönsterexpansion (pattern matching expansion). Om man ger kommandot

ls s*
får man en lista över alla filer i nuvarande katalog som börjar på "s". Under en del operativsystem sköts sådana funktioner genom att varje enskilt kommando tittar om det finns några mönstertecken i ett filnamn, och sedan agerar därefter. Under Unix är det istället skalet som hanterar sådant, vilket gör att det fungerar - och fungerar likadant - för alla kommandon, och även program man skriver själv.

De troligen mest använda mönstertecknen är "*", som betyder "hur många tecken som helst och vilka som helst", och "?", som betyder "ett tecken, vilket som helst". Därutöver finns bland annat "[teckenlista]", som betyder "ett tecken, vilket som helst av tecknen i listan". Man kan kombinera de olika mönstertecknen fritt, och till exempel använda ett mönster i stil med

fr*o[kd]??
för att expandera till alla filnamn som börjar på "fr", och slutar på ett "o" följt av ett "k" eller "d", och därefter två tecken vilka som helst. (Om man nu skulle vilja det...)