एचटीएमएल फाइल से पार्स शब्द

मुझे एक HTML फ़ाइल से शब्द निकालने का प्रयास करने में बहुत परेशानी हो रही है। एचटीएमएल फाइल में लाइन इस तरह दिखाई देती है:

WORD

मैं वर्ड को बाहर निकालने की कोशिश कर रहा हूं लेकिन मैं इसे समझ नहीं सकता। अब तक मुझे मिल गया है:

 grep 'span id="result"' FILE 

जो मुझे बस लाइन मिल जाता है। मैंने भी कोशिश की है:

sed -n '//,/<\/span>/p' FILE

जो या तो काम नहीं करता था। मुझे पता है कि यह शायद एक बहुत ही सरल सवाल है, लेकिन मैं बस शुरुआत कर रहा हूं इसलिए मैं वास्तव में कुछ मदद का उपयोग कर सकता था।

0

4 उत्तर

तुम कोशिश कर सकते हो

awk -f ext.awk input.html

जहां input.html आपकी इनपुट HTML फ़ाइल है, और ext.awk है

{
    line=line $0 RS
}

END {
    match (line,/([^<]*)<\/span>/,a)
    print a[1]
}

यह लाइन ब्रेक भर में सामग्री निकाल देगा ..

0
जोड़ा

पिछड़े संदर्भ के साथ grep का उपयोग करें:

grep -Po '(?<=)\w+'

Parenthèses के बीच अभिव्यक्ति एक पिछड़ा संदर्भ है; यह कब्जा नहीं किया जाता है लेकिन निम्नलिखित रेगेक्स भाग के लिए परीक्षण के रूप में कार्य करता है: यदि अभिव्यक्ति प्रकट होती है, तो कैप्चर किया गया पैटर्न केवल \ w + है। केवल शब्द को आउटपुट करने के लिए विकल्प -o जोड़ें; विकल्प -P आगे और पिछड़े संदर्भ सक्षम करता है।

यदि आप इस रेगेक्स को संशोधित करना चाहते हैं, तो कृपया ध्यान दें कि grep के साथ, पिछड़े संदर्भ में निश्चित आकार होना चाहिए।

0
जोड़ा

यह awk
के लिए एक कार्य है मुझे लगता है कि आपके पास एक ही फाइल में अन्य पंक्ति है इसलिए span id की खोज एक जरूरी है।

echo "WORD" | awk -F"[<>]" '/span id/ {print $3}'
WORD
0
जोड़ा

एचटीएमएल पार्स करने के लिए regex का उपयोग न करें।

एक HTML पार्सर का प्रयोग करें।

मेरे Xidel के लिए निम्नतम वाक्यविन्यास है:

xidel FILE -e "#result"
0
जोड़ा