grep

2011-11-25 17 views
11

का उपयोग कर xml टैग के अंदर टेक्स्ट प्राप्त करें शुक्रवार दोपहर है, और मेरा दिमाग जमे हुए है!grep

grep -E -m 1 -o "<title>(.*)</title>" myfile.rss 

रिटर्न

<title>Some title</title> 

कैसे मैं सिर्फ Some title मिलता है?

+1

के लिए। आप एक्सएमएल को उचित तरीके से पार्स करने के लिए PHP, perl का उपयोग करने पर विचार कर सकते हैं। फिर नोड मान प्राप्त करना आसान होगा – ajreal

+0

नहीं, यह कार्य के लिए पूर्ण ओवरकिल है! – tdc

+0

जो मैं समझता हूं उसके लिए हम केवल ज्ञात लेआउट के एक्सएमएल से शीर्षक सामग्री निकालना चाहते हैं, xml पार्स नहीं। Xml 'xmlstarlet' को पार्स करने के लिए उपयोगी उपयोगिता हो सकती है। –

उत्तर

21

पाइप यह बैश एक निर्माण में समारोह XML को पार्स करने की जरूरत नहीं है के माध्यम से आगे है, उदाहरण के

sed -e 's,.*<title>\([^<]*\)</title>.*,\1,g' 
+0

धन्यवाद! मस्तिष्क बाहर निकलना ;-) – tdc

+0

+1, लेकिन ध्यान दें कि एक्सएमएल (या एचटीएमएल) को पार्स करने के लिए 'sed' का उपयोग करना आम तौर पर एक अच्छा विचार नहीं है। यह तब किया जाना चाहिए जब इनपुट अच्छी तरह से जाना जाता है और अप्रत्याशित रूप से भिन्न नहीं होता है। इंटरनेट से स्वचालित रूप से स्लर्फ किए गए किसी भी चीज़ के लिए एक उचित पार्सर का उपयोग किया जाना चाहिए। – Sorpigal

+0

@ सर्पिलगल, मैं पूरी तरह से सहमत हूं, विवरण के लिए स्वयं प्रश्नों पर टिप्पणियां देखें। –