Udostępnij za pomocą


Odwołanie do wzorców dopasowywania plików

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

Składnia wzorca

Wzorzec jest ciągiem lub listą ciągów rozdzielanych wierszami. Nazwy plików i katalogów są porównywane z wzorcami do uwzględnienia (lub czasami wykluczania) w zadaniu. Złożone zachowanie można tworzyć, stosując wiele wzorców. Aby zapoznać się z pełnym przewodnikiem składni, zobacz fnmatch.

Dopasuj znaki

Większość znaków jest używana jako dokładne dopasowania. To, co liczy się jako "dokładne" dopasowanie jest zależne od platformy: system plików systemu Windows jest bez uwzględniania wielkości liter, więc wzorzec "ABC" będzie pasował do pliku o nazwie "abc". W systemach plików z uwzględnieniem wielkości liter ten wzorzec i nazwa nie będą zgodne.

Następujące znaki mają specjalne zachowanie.

  • * pasuje do zera lub większej liczby znaków w nazwie pliku lub katalogu. Zobacz przykłady.
  • ? pasuje do dowolnego pojedynczego znaku w nazwie pliku lub katalogu. Zobacz przykłady.
  • [] pasuje do zestawu lub zakresu znaków w nazwie pliku lub katalogu. Zobacz przykłady.
  • ** cykliczne symbole wieloznaczne. Na przykład /hello/**/* pasuje do wszystkich elementów podrzędnych /hello.

Rozszerzone globbing

  • ?(hello|world) - dopasowania hello lub world zero razy lub jeden raz
  • *(hello|world) — zero lub więcej wystąpień
  • +(hello|world) — co najmniej jedno wystąpienie
  • @(hello|world) — dokładnie raz
  • !(hello|world) — nie hello ani world

Uwaga / Notatka

Rozszerzone globy nie mogą obejmować separatorów katalogów. Na przykład +(hello/world|other) nie jest prawidłowy.

Komentarze

Wzorce rozpoczynające się od # są traktowane jako komentarze.

Wyklucz wzorce

Wiodący ! zmienia znaczenie wzorca dołączania do wykluczenia. Można uwzględnić wzorzec, wykluczyć jego podzbiór, a następnie ponownie dołączyć podzbiór tego: jest to znane jako wzorzec "przeplatany".

Wiele ! przerzuca znaczenie. Zobacz przykłady.

Przed wzorcem wykluczania należy zdefiniować wzorzec dołączania. Zobacz przykłady.

Ucieczki

Zawijanie znaków specjalnych w [] może służyć do ucieczki znaków globu literału w nazwie pliku. Na przykład nazwę pliku literału hello[a-z] można stosować jako hello[[]a-z].

Ukośnik

/ jest używany jako separator ścieżki w systemach Linux i macOS. W większości przypadków agenci systemu Windows akceptują /. Przypadki, w których należy użyć separatora systemu Windows (\) są udokumentowane.

Przykłady

Przykłady podstawowego wzorca

Przykłady gwiazdki

Przykład 1: Biorąc pod uwagę wzorzec *Website.sln, i następujące pliki:

ConsoleHost.sln
ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln

Wzorzec będzie zgodny z następującymi elementami:

ContosoWebsite.sln
FabrikamWebsite.sln
Website.sln

Przykład 2: Biorąc pod uwagę wzorzec *Website/*.proj i ścieżki:

ContosoWebsite/index.html
ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/index.html
FabrikamWebsite/FabrikamWebsite.proj

Wzorzec będzie zgodny z następującymi elementami:

ContosoWebsite/ContosoWebsite.proj
FabrikamWebsite/FabrikamWebsite.proj

Przykłady znaków zapytania

Przykład 1: Biorąc pod uwagę wzorzec log?.log, i następujące pliki:

log1.log
log2.log
log3.log
script.sh

Wzorzec będzie zgodny z następującymi elementami:

log1.log
log2.log
log3.log

Przykład 2: Biorąc pod uwagę wzorzec image.???, i następujące pliki:

image.tiff
image.png
image.ico

Wzorzec będzie zgodny z następującymi elementami:

image.png
image.ico

Przykłady zestawów znaków

Przykład 1: Biorąc pod uwagę wzorzec Sample[AC].dat, i następujące pliki:

SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat

Wzorzec będzie zgodny z następującymi elementami:

SampleA.dat
SampleC.dat

Przykład 2: Biorąc pod uwagę wzorzec Sample[A-C].dat, i następujące pliki:

SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat

Wzorzec będzie zgodny z następującymi elementami:

SampleA.dat
SampleB.dat
SampleC.dat

Przykład 3: Biorąc pod uwagę wzorzec Sample[A-CEG].dat, i następujące pliki:

SampleA.dat
SampleB.dat
SampleC.dat
SampleD.dat
SampleE.dat
SampleF.dat
SampleG.dat
SampleH.dat

Wzorzec będzie zgodny z następującymi elementami:

SampleA.dat
SampleB.dat
SampleC.dat
SampleE.dat
SampleG.dat

Przykłady cyklicznych symboli wieloznacznych

Biorąc pod uwagę wzorzec **/*.ext, i następujące pliki:

sample1/A.ext
sample1/B.ext
sample2/C.ext
sample2/D.not

Wzorzec będzie zgodny z następującymi elementami:

sample1/A.ext
sample1/B.ext
sample2/C.ext

Poniższy przykład został wygenerowany przez Copilot. Copilot jest obsługiwany przez sztuczną inteligencję, więc możliwe są niespodzianki i błędy. Aby uzyskać więcej informacji, zobacz także Copilot często zadawane pytania dotyczące ogólnego użytkowania.

Wzorzec **/*.ext glob jest zaawansowanym wzorcem rekursywnym używanym w wielu systemach plików i narzędziach (takich jak bash, zsh, Python globitp.), aby dopasować wszystkie pliki kończące się w .ext bieżącym katalogu i wszystkich podkatalogach, niezależnie od tego, jak głęboko zagnieżdżone.

Oto kilka przykładowych ścieżek, które pasują do **/*.extelementu :

  • sample1/A.ext
  • sample1/B.ext
  • sample2/C.ext
  • sample2/subdir1/D.ext
  • sample2/subdir1/subdir2/E.ext
  • sample3/F.ext
  • sample3/subdir3/G.ext
  • sample3/subdir3/subdir4/H.ext

Część ** oznacza dowolną liczbę katalogów (w tym zero) i *.ext oznacza dowolny plik kończący się na ..ext

Przykłady wykluczania wzorca

Biorąc pod uwagę następujący wzorzec i następujące pliki:

*
!*.xml
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml

Wzorzec będzie zgodny z następującymi elementami:

ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb

Przykłady podwójnego wykluczania

Biorąc pod uwagę następujący wzorzec i następujące pliki:

*
!*.xml
!!Fabrikam.xml
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml

Wzorzec będzie zgodny z następującymi elementami:

ConsoleHost.exe
ConsoleHost.pdb
Fabrikam.dll
Fabrikam.pdb
Fabrikam.xml

Przykłady wykluczania folderów

Biorąc pod uwagę następujący wzorzec i następujące pliki:

**
!sample/**
ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml
sample/Fabrikam.dll
sample/Fabrikam.pdb
sample/Fabrikam.xml

Wzorzec będzie zgodny z następującymi elementami:

ConsoleHost.exe
ConsoleHost.pdb
ConsoleHost.xml