मैं नैन्ट / एंट नामकरण पैटर्न का उपयोग कैसे करूँ?


99

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

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


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

हो सकता है कि आप वास्तव में यह बता सकें कि आप क्या हासिल करने की कोशिश कर रहे हैं और कोई आपको बेहतर जवाब दे सकता है?
एंडी व्हिटफ़ील्ड

जवाबों:


240

नियम हैं:

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

इसके बारे में सोचने का दूसरा तरीका है डबल स्टार (**) स्लैश (/) से मेल खाता है, लेकिन सिंगल स्टार (*) नहीं है।

मान लें कि आपके पास फ़ाइलें हैं:

  1. bar.txt
  2. src / bar.c
  3. src / baz.c
  4. src / परीक्षण / 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
मुझे लगता है कि यह नांट संदर्भ की तुलना में बहुत बेहतर व्याख्या है। चीयर्स!
बेर्को

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

1
क्या **.cमेल होगा ?
छेरवे २३'१५

3
मैं किसी भी अधिक चींटी का उपयोग नहीं करता हूं, इसलिए मैं अनुवर्ती प्रश्नों का उत्तर देने के लिए नहीं हूं। आपको एक नया प्रश्न पूछना चाहिए या, और भी बेहतर, उत्तर ढूंढना चाहिए और फिर मेरे उत्तर में एक संपादन प्रस्तुत करना चाहिए।
बेन्जादो

1
एक तरह से इसके बारे में सोचने के लिए @sitaktif वह यह है कि bar.txtपरोक्ष है ./bar.txt( .वर्तमान निर्देशिका का मतलब है)। तो वह सूची वास्तव ./bar.txtमें है ./src/bar.c, आदि और ./माना जाता है।
बेंज़ादो

16

यहां कुछ अतिरिक्त पैटर्न मिलान हैं जो प्रलेखन से इतने स्पष्ट नहीं हैं। बेंजो के जवाब में उदाहरण फ़ाइलों के लिए 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 संदर्भ । फाइलसेट पैटर्न हैं:

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

और '**' एक डायरेक्टरी ट्री से मेल खाता है जैसे src / ** / *। Ss किसी भी सब-डायरेक्टरी में src की सभी cs फाइल्स को खोजेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.