मैं पिछले दो नंबर हड़पने के लिए चाहते मिलान।sed: केवल और प्रिंट उन्हें (वैकल्पिक खाली स्थान के द्वारा पीछा किया एक पूर्णांक, एक नाव) प्रिंट केवल समूह
उदाहरण:
foo bar <foo> bla 1 2 3.4
प्रिंट चाहिए:
2 3.4
अब तक, मैं निम्नलिखित है:
sed -n 's/\([0-9][0-9]*[\ \t][0-9.]*[\ \t]*$\)/replacement/p'
मुझे
foo bar <foo> bla 1 replacement
दे देंगे
हालांकि, अगर मैं इसे समूह 1 के साथ प्रतिस्थापित करने का प्रयास करता हूं, तो पूरी पंक्ति मुद्रित होती है।
sed -n 's/\([0-9][0-9]*[\ \t][0-9.]*[\ \t]*$\)/\1/p'
मैं समूह में रेगेक्स से मेल खाने वाली रेखा के केवल अनुभाग को कैसे प्रिंट कर सकता हूं?
मैं पर 's 'कमांड के आरएचएस ' त्रुटि \ 1 '-r' या' --regexp-extended' विकल्प अन्यथा मैं हो रही थी 'अमान्य संदर्भ जोड़ने के लिए किया था। –
@DanielSokolowski मुझे लगता है कि यदि आप '(' और '\ '' के बजाय '(' और ')' का उपयोग करते हैं तो आपको वह त्रुटि मिलती है। –
भी 'जोड़ना याद रखें।* 'regexp के अंत तक यदि आप जिस स्ट्रिंग को निकालना चाहते हैं वह हमेशा लाइन के अंत में नहीं है। –