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 /hellotill .

Utökad globbning

  • ?(hello|world) - matchningar hello eller world 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) - inte hello eller world

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