2008-09-16 13 views
79

मुझे यह मानना ​​है कि मैं हमेशा नेंट के लिए नामकरण पैटर्न की वाक्य रचनात्मक अंतर्दृष्टि भूल गया (उदाहरण के लिए। फाइलों में उपयोग किए गए)। डबल तारांकन/एकल तारों की चीजें मेरे दिमाग में बहुत भूल जाती हैं।मैं नंत/चींटी नामकरण पैटर्न का उपयोग कैसे करूं?

क्या कोई नामकरण पैटर्न के लिए एक निश्चित मार्गदर्शिका प्रदान कर सकता है?

+3

मैं संदर्भ पढ़ा है। और इसे फिर से पढ़ें। और इसे फिर से पढ़ें। मुझे लगता है कि इसका उदाहरण वास्तव में खराब सेट है और इसके संदेश में अस्पष्ट है। – berko

+0

हो सकता है कि आप वास्तव में निर्दिष्ट कर सकें कि आप क्या हासिल करने की कोशिश कर रहे हैं और कोई बेहतर उत्तर प्रदान कर सकता है? –

उत्तर

185

नियम हैं:

  • एक तारे (*) शून्य या अधिक वर्ण से मेल खाता है एक पथ नाम
  • एक डबल स्टार (**) के भीतर शून्य या अधिक वर्ण निर्देशिका स्तरों पर से मेल खाता है
  • एक प्रश्न चिह्न (?) एक पथ नाम के भीतर ठीक एक चरित्र से मेल खाता है

anothe इसके बारे में सोचने का तरीका डबल स्टार (**) मैचों स्लैश (/) है लेकिन एकल सितारा (*) नहीं है।

मान लीजिए कि आप फ़ाइलों करते हैं:

  1. bar.txt
  2. src/bar.c
  3. src/baz.c
  4. src/परीक्षण/bartest.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      
+4

मुझे लगता है कि यह नंत संदर्भ से काफी बेहतर स्पष्टीकरण है। चीयर्स! – berko

+0

src/*/** मिलान क्या करता है? मैं उम्मीद करता हूं कि यह 4 हो, लेकिन मैवेन के साथ मेरा अनुभव यह इंगित करता है कि आप किसी भी फ़ोल्डर में किसी भी फाइल से मेल खाते हैं जो आपको चाहिए/*/*/** –

+1

'**। सी' मैच क्या होगा? – chharvey

2

Nant reference देखें। फाइलसेट पैटर्न हैं:

'*' शून्य या अधिक वर्णों से मेल खाता है, उदा। * .cs
'?' एक चरित्र से मेल खाता है, उदा। ?cs

और '**' एक निर्देशिका पेड़ से मेल खाता है उदा। src/**/*। cs सभी सीएस फ़ाइलों को स्रोत की किसी उप-निर्देशिका में पायेगा।

3

डबल तारक (**), फ़ोल्डर-नाम मिलान के साथ जुड़े रहे हैं, जबकि एक प्रतीकों तारांकित (* = multi characters) के साथ ही प्रश्न-चिह्न (? = single character) फ़ाइल-नाम से मेल करने के लिए इस्तेमाल कर रहे हैं।

10

यहां कुछ अतिरिक्त पैटर्न मैचों हैं जो दस्तावेज़ीकरण से बहुत स्पष्ट नहीं हैं।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) \ **। सी के साथ \ **/\ * सी के लिए कोई प्रतिस्थापन नहीं है। – nonsenz

संबंधित मुद्दे