Referens för filmatchningsmönster
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Mönstersyntax
Ett mönster är en sträng eller lista med nya, avgränsade strängar. Fil- och katalognamn jämförs med mönster som ska inkludera (eller ibland exkludera) dem i en uppgift. Du kan skapa komplexa beteenden genom att stapla flera mönster. Se fnmatch för en fullständig syntaxguide.
Matcha tecken
De flesta tecken används som exakta matchningar. Det som räknas som en "exakt" matchning är plattformsberoende: Windows-filsystemet är skiftlägeskänsligt, så mönstret "ABC" skulle matcha en fil med namnet "abc". På skiftlägeskänsliga filsystem matchar inte det mönstret och namnet.
Följande tecken har ett särskilt beteende.
*
matchar noll eller fler tecken i ett fil- eller katalognamn. Se exempel.?
matchar ett enskilt tecken i en fil eller ett katalognamn. Se exempel.[]
matchar en uppsättning eller ett intervall med tecken i ett fil- eller katalognamn. Se exempel.**
rekursivt jokertecken. Matchar till exempel/hello/**/*
alla underordnade/hello
till .
Utökad globbning
?(hello|world)
- matchningarhello
ellerworld
noll eller en gånger*(hello|world)
– noll eller fler förekomster+(hello|world)
– en eller flera förekomster@(hello|world)
- exakt en gång!(hello|world)
- intehello
ellerworld
Observera att utökade globs inte kan sträcka sig över katalogavgränsare. Är till exempel +(hello/world|other)
inte giltigt.
Kommentarer
Mönster som börjar med #
behandlas som kommentarer.
Exkludera mönster
Inledande !
ändringar innebörden av ett inkluderingsmönster som ska undantas.
Du kan inkludera ett mönster, exkludera en delmängd av det och sedan ta med en delmängd av det igen: detta kallas för ett "interfolierat" mönster.
Flera !
vänder innebörden. Se exempel.
Du måste definiera ett inkluderingsmönster innan ett exkluderingsmönster. Se exempel.
Fly
Omslutning av specialtecken i []
kan användas för att undvika literala globtecken i ett filnamn. Till exempel kan det literala filnamnet hello[a-z]
undantagas som hello[[]a-z]
.
Snedstreck
/
används som sökvägsavgränsare i Linux och macOS.
För det mesta accepterar /
Windows-agenter .
Tillfällen då Windows-avgränsaren (\
) måste användas dokumenteras.
Exempel
Exempel på grundläggande mönster
Asteriskexempel
Exempel 1: Med tanke på mönstret *Website.sln
och filerna:
ConsoleHost.sln
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Mönstret skulle matcha:
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln
Exempel 2: Med tanke på mönstret *Website/*.proj
och sökvägarna:
ContosoWebsite/index.html
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/index.html
FabrikamWebsite/FabrikamWebsite.proj
Mönstret skulle matcha:
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj
Exempel på frågetecken
Exempel 1: Med tanke på mönstret log?.log
och filerna:
log1.log
log2.log
log3.log
script.sh
Mönstret skulle matcha:
log1.log
log2.log
log3.log
Exempel 2: Med tanke på mönstret image.???
och filerna:
image.tiff
image.png
image.ico
Mönstret skulle matcha:
image.png
image.ico
Exempel på teckenuppsättning
Exempel 1: Med tanke på mönstret Sample[AC].dat
och filerna:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Mönstret skulle matcha:
SampleA.dat
SampleC.dat
Exempel 2: Med tanke på mönstret Sample[A-C].dat
och filerna:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
Mönstret skulle matcha:
SampleA.dat
SampleB.dat
SampleC.dat
Exempel 3: Med tanke på mönstret Sample[A-CEG].dat
och filerna:
SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
SampleE.dat
SampleF.dat
SampleG.dat
SampleH.dat
Mönstret skulle matcha:
SampleA.dat
SampleB.dat
SampleC.dat
SampleE.dat
SampleG.dat
Rekursiva jokerteckenexempel
Med tanke på mönstret **/*.ext
och filerna:
sample1/A.ext
sample1/B.ext
sample2/C.ext
sample2/D.not
Mönstret skulle matcha:
sample1/A.ext
sample1/B.ext
sample2/C.ext
Exkludera mönsterexempel
Med tanke på mönstret:
*
!*.xml
och filer:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Mönstret skulle matcha:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Dubbel exkludera
Med tanke på mönstret:
*
!*.xml
!!Fabrikam.xml
och filer:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Mönstret skulle matcha:
ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml
Undantag för mapp
Med tanke på mönstret:
**
!sample/**
och filer:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
sample/Fabrikam.dll
sample/Fabrikam.pdb
sample/Fabrikam.xml
Mönstret skulle matcha:
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml