Nant / Antの命名パターンはどのように使用しますか?


99

私は常に、Nantの命名パターン(たとえば、ファイルセットで使用されているもの)の構文内を忘れてしまったことを認めざるを得ません。二重のアスタリスク/単一のアスタリスクのものは、私の心の中でとても忘れられそうです。

誰かが命名パターンの決定的なガイドを提供できますか?


3
リファレンスを読みました。そしてそれをもう一度読んでください。そしてそれをもう一度読んでください。私はそれが本当に貧弱な例のセットを持ち、そのメッセージが不明確であると思います。
berko 2008

多分あなたが達成しようとしているものを正確に指定でき、誰かがより良い答えを提供できるでしょうか?
アンディホイットフィールド、

回答:


240

ルールは次のとおりです。

  • 単一の星(*)は、パス名内の 0個以上の文字に一致します
  • 二重星(**)は、ディレクトリレベル全体で 0個以上の文字に一致します
  • 疑問符(?)は、パス名内の1文字と完全に一致します

それについて考えるもう1つの方法は、ダブルスター(**)はスラッシュ(/)に一致しますが、シングルスター(*)は一致しません。

ファイルがあるとしましょう:

  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に一致(*は1つのレベルにのみ一致するため)
  • **/*.c       2、3、および4に一致(**は任意の数のレベルに一致するため)
  • bar.*         1に一致
  • **/bar.*   1と2に一致
  • **/bar*.* 1、2、および4に一致
  • src/ba?.c 2と3に一致    

5
これはNantのリファレンスよりもはるかに良い説明だと思います。乾杯!
berko 2008

1
src / * / **は何に一致しますか?私はそれが4であると期待しますが、mavenでの私の経験は、src / * / * / **が必要な任意のフォルダー内のすべてのファイルと一致することを示しているようです
Matthew Buckett

1
何が**.c一致しますか?
chharvey、

3
Antはもう使用しないので、フォローアップの質問に答える立場にはありません。あなたは新しい質問をするか、さらに良いことに、答えを見つけてから、私の答えの編集を提出する必要があります。
ベンザド2015年

1
@sitaktifこれについて考える1つの方法は、bar.txt暗黙的に./bar.txt.現在のディレクトリを意味する)ことです。したがって、そのリストは実際./bar.txt./src/bar.c、など./です。
ベンザド2016

16

ドキュメントからは明らかではないいくつかの追加のパターンマッチを次に示します。ベンザドの答えのサンプルファイルに対してNAntを使用してテストされました。

  • src**                      2、3、4に一致
  • **.c                        2、3、および4に一致
  • **ar.*                    1と2に一致
  • **/bartest.c/**  4に一致
  • src/ba?.c/**        2と3に一致

2
小さなメモ:ant付き(1.8.2)**。cは** / *。cの代わりにはなりません
nonsenz

4

二重アスタリスク(**)は、一致するフォルダー名に関連付けられていますが、ファイル名の一致には、単一記号アスタリスク(* = multi characters)と疑問符(? = single character)が使用されます。


3

チェックアウトナント参照を。ファイルセットのパターンは次のとおりです。

'*'は0個以上の文字に一致します。例:* .cs
'?' ?.csなどの1文字に一致

また、「**」はディレクトリツリーと一致します。たとえば、src / ** / *。csは、srcのサブディレクトリにあるすべてのcsファイルを検索します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.