से मूल xml पार्सिंग करने का सबसे आसान तरीका मैं xml फ़ाइलों की खोज कर रहा हूं जिनमें कुछ गुण हैं। उदाहरण के लिए, फ़ाइलों को निम्नलिखित पैटर्न होते हैं:यूनिक्स कमांड लाइन
<param-value>
<name>Roles</name>
<description>some description</description>
<value>asdf</value>
</param-value>
और साथ बाहर फ़ाइल नाम मुद्रित: इस तरह फ़ाइलों के लिए
<param-value>
<name>Hosts</name>
<description>some description</description>
<value></value>
</param-value>
, मैं इस तरह के रूप में, एक और टैग के मान को पार्स करने के लिए करना चाहते हैं "asdf" के साथ। कमांड लाइन से इसे पूरा करने का सबसे आसान तरीका क्या है?
एक दृष्टिकोण जो मैं सोच रहा था कि मिलान करने वाली फ़ाइलों को फ़िल्टर करने के लिए -l विकल्प के साथ grep का उपयोग कर रहा था, और फिर भूमिकाओं के मूल्य को निकालने के लिए xargs grep का उपयोग कर रहा था। हालांकि, grep बहु-पंक्ति regexes के साथ अच्छी तरह से काम नहीं करता है। मैंने एक और सवाल देखा जो दिखाता है कि यह -Pzo विकल्पों के साथ किया जा सकता है, लेकिन मेरे मामले में काम करने के लिए कोई भाग्य नहीं मिला। क्या कोई आसान दृष्टिकोण है?
कोई विशेष कारण है कि आप इस तरह के पर्ल के रूप में एक पटकथा भाषा का उपयोग नहीं करना चाहते है? – Tom
नहीं, एक पर्ल समाधान बहुत अच्छा होगा, अधिमानतः एक कॉम्पैक्ट एक-लाइनर, लेकिन मुझे इसे लिखने के लिए सबसे अच्छा तरीका नहीं पता है। – jonderry
यह समाधान उपयोगी होगा जो केवल सबसे बुनियादी उपकरण के साथ चलता है, हालांकि xmlstarlet, xpath, और perl का xpath मॉड्यूल उस सिस्टम पर स्थापित नहीं है जिस पर मैं खोज करने जा रहा हूं। – jonderry