2011-09-17 23 views
5

निर्दिष्ट करता हूं उसके बाद मैं grep का उपयोग कर रहा हूं और मैं अपनी स्ट्रिंग के बाद डेटा प्राप्त करना चाहता हूं। मैं जो निर्दिष्ट करता हूं उसके बाद मैं स्ट्रिंग प्राप्त करना चाहता हूं। अगर मैं "लेबल" grep: "मुझे" लेबल मिलता है: नीला लेबल: लाल लेबल: हरा "। मैं सिर्फ रंग प्राप्त करना चाहता हूं। अगर मैं grep -o कहता हूं तो मुझे सभी लेबल मिलते हैं। अगर मैं कहता हूं -एल यह कहता है (मानक आउटपुट)। कोई उपाय?grep स्ट्रिंग जो मैं

उत्तर

6

आप शब्द लेबल को खत्म करने के लिए sed का उपयोग कर सकते हैं उदा।

grep "label:" | sed s/label://g 
+0

... हालांकि 'grep' [बेकार] है (http://www.iki.fi/era/unix/award.html#grep); 'sed -n'/लेबल:/s /// gp'' – tripleee

2

Grep एक ऐसा उपकरण है जिसका उपयोग केवल टेक्स्ट की पंक्तियों को फ़िल्टर करने के लिए किया जा सकता है। कुछ और जटिल करने के लिए, आपको शायद एक और जटिल उपकरण की आवश्यकता है।

उदाहरण के लिए, sed यहां इस्तेमाल किया जा सकता है:

sed 's/.*label: \(.*\)/\1/' 

पाठ इस तरह ...

label: blue 
llabel: red 
label: green label: yellow 

चालू हो जाता है इस में:

blue 
red 
yellow 

आप देख सकते हैं, यह sed कमांड केवल आपके खोज पैटर्न के बाद आता है, और प्रति लिन के कई मैच एस समर्थित नहीं हैं।

संबंधित मुद्दे