Wget और grep को कैसे संयोजित करें


11

मेरे पास एक html-पृष्ठ url है और मैं इसे प्राप्त करना चाहता हूं। मैं इसे कैसे कर सकता हूं wget someArgs | grep keyword?

मेरा पहला विचार था wget -q -O - url | grep keyword, लेकिन wget का आउटपुट grep को बायपास करता है और अपने मूल रूप में टर्मिनल पर उत्पन्न होता है।


grep (उदाहरण के लिए) गाड़ी वापसी और लाइनफीड वर्णों द्वारा सीमांकित रेखाओं का चयन करता है, एक HTML प्रतिक्रिया में वह रेखाएँ नहीं होती हैं जिनमें मार्कअप के साथ पाठ होता है जैसे कि <br> या <p> इसलिए संपूर्ण वेब-पेज grep के लिए एक पंक्ति की तरह दिख सकता है
RedGGittyBrick

1
@RedGrittyBrick ओपी की कमान मेरे लिए त्रुटिपूर्ण काम करती है।
19

जवाबों:


11

सबसे आसान तरीका उपयोग करने के लिए है curlविकल्प के साथ -sके लिए चुप:

curl -s http://somepage.com | grep whatever

@ स्लैक: दोनों कमांड मेरे लिए बिल्कुल समान हैं।
डेनिस

@ डेनिस curlआईएनजी आज़माएं http://superuser.com/questions/431581। जिस भी कारण से मैंने इसे इस विशेष URL के साथ परीक्षण किया और कोई आउटपुट नहीं मिला। दुन्नो मुझे याद आ रहा है।
slhck

@ श्लोक: कर्ल डिफ़ॉल्ट रूप से पुनर्निर्देश नहीं करता है। यह -Lस्विच के साथ करता है ।
डेनिस

@ डेनिस को पता नहीं था कि आप हटाए गए टिप्पणियों को देखे बिना क्या बात कर रहे थे - लेकिन हाँ, यह समझ में आता है। इसे क्लीयर करने के लिए शुक्रिया।
slhck

1
विनती के लिए प्रश्न पूछता है। कर्ल नहीं। यह कई रीडायरेक्ट और -L विकल्प के साथ काम नहीं करेगा।
23

11

इसे पूर्णता के लिए इधर-उधर रखना।

आपका उदाहरण वास्तव में काम करना चाहिए। वाक्यविन्यास सही है, और यहाँ एकwget स्क्रैंकास्ट है जिसे मैंने केवल एक अच्छा पुराने GNU 1.13.4 के साथ प्रदर्शित किया

wget -q some-url -O - | grep something

तो मान लीजिए कि आपका पैटर्न गलत है और grepइससे मिलने वाली हर चीज का उत्पादन होगा।


यह URL में एक टाइपो भी हो सकता है। के साथ -q, कोई त्रुटि संदेश नहीं है।
डेनिस


3

यदि आप जीआरपी या पाइप हेडर देख रहे हैं, तो वे स्टैडर के लिए मानक हैं ताकि आपको उन्हें पुनर्निर्देशित करने की आवश्यकता हो। उदाहरण के लिए:

wget -O - http://example.com/page.php > /dev/null 2>&1 | grep HTTP

2
यह करने का सही तरीका है, धन्यवाद!
उदयराज देशमुख


0

wgetकरने के लिए इसके उत्पादन लिखते stderr नहीं करने के लिए stdoutपुनर्निर्देशित करने के लिए, एक तो जरूरतों stderrको stdout:

wget -q -O - url 2&>1 | grep keyword
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.