Nant / Ant 이름 지정 패턴은 어떻게 사용합니까?


99

난 항상 Nant의 이름 지정 패턴 (예 : 파일 세트에 사용 된 패턴)의 구문 적 인트라 캐시를 잊어 버렸다는 것을 인정해야합니다. 이중 별표 / 단일 별표 항목은 내 마음에서 매우 잊을 수있는 것 같습니다.

누군가 이름 지정 패턴에 대한 확실한 가이드를 제공 할 수 있습니까?


3
나는 참조를 읽었다. 그리고 다시 읽으십시오. 그리고 다시 읽으십시오. 나는 그것이 정말로 열악한 사례를 가지고 있고 그 메시지에서 불분명하다고 생각합니다.
berko

달성하려는 대상을 정확히 지정할 수 있고 누군가가 더 나은 답변을 제공 할 수 있습니까?
Andy Whitfield

답변:


240

규칙은 다음과 같습니다.

  • 단일 별표 (*) 는 경로 이름 내의 0 개 이상의 문자와 일치합니다.
  • 이중 별표 (**)는 디렉토리 수준에서 0 개 이상의 문자와 일치 합니다.
  • 물음표 (?)는 경로 이름에서 정확히 한 문자와 일치합니다.

그것에 대해 생각하는 또 다른 방법은 이중 별표 (**)는 슬래시 (/)와 일치하지만 단일 별표 (*)는 일치하지 않습니다.

파일이 있다고 가정 해 보겠습니다.

  1. bar.txt
  2. src / bar.c
  3. src / baz.c
  4. src / test / bartest.c

그런 다음 패턴 :

  • *.c             아무것도 일치하지 않음 (현재 디렉토리에 .c 파일이 없음)
  • src/*.c     2와 3과 일치
  • */*.c         2 및 3과 일치 (*는 한 수준 만 일치하므로)
  • **/*.c       2, 3 및 4와 일치 (**는 모든 수준의 수준과 일치하기 때문에)
  • bar.*         일치 1
  • **/bar.*   1과 2와 일치
  • **/bar*.* 1, 2 및 4와 일치
  • src/ba?.c 2와 3과 일치    

5
나는 이것이 Nant 참조보다 훨씬 더 나은 설명이라고 생각합니다. 건배!
berko

1
src / * / **는 무엇과 일치합니까? 4가 될 것으로 예상하지만 maven에 대한 경험은 src / * / * / **가 필요한 폴더의 모든 파일과 일치하는 것으로 나타났습니다.
Matthew Buckett 2013

1
무엇이 **.c일치할까요?
chharvey

3
더 이상 Ant를 사용하지 않기 때문에 후속 질문에 답할 수 없습니다. 새로운 질문을하거나 더 좋은 방법은 답을 찾은 다음 내 답변에 대한 수정을 제출하는 것입니다.
benzado 2015 년

1
@sitaktif 그것에 대해 생각하는 한 가지 방법 bar.txt은 암시 적으로 ./bar.txt( .현재 디렉터리를 의미 함)입니다. 이 목록은 정말 그래서 ./bar.txt, ./src/bar.c등, 그리고이 ./가정한다.
benzado

16

다음은 문서에서 명확하지 않은 몇 가지 추가 패턴 일치입니다. benzado의 답변에있는 예제 파일에 대해 NAnt를 사용하여 테스트했습니다.

  • src**                      2, 3 및 4와 일치
  • **.c                        2, 3, 4와 일치
  • **ar.*                    1과 2와 일치
  • **/bartest.c/**  4와 일치
  • src/ba?.c/**        2와 3과 일치

2
작은 메모 : 개미 포함 (1.8.2) **. c는 ** / *. c를 대체하지 않습니다.
nonsenz

4

이중 별표 ( **)는 폴더 이름 일치와 연관되는 반면 단일 기호 별표 ( * = multi characters)와 물음표 ( ? = single character)는 파일 이름을 일치시키는 데 사용됩니다.


3

Nant 참조를 확인하십시오 . 파일 세트 패턴은 다음과 같습니다.

'*'는 0 개 이상의 문자와 일치합니다. 예 : * .cs
'?' 한 문자와 일치합니다 (예 :? .cs).

그리고 '**'는 디렉토리 트리와 일치합니다. 예를 들어 src / ** / *. cs는 src의 하위 디렉토리에서 모든 cs 파일을 찾습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.