मैं बहुत से उदाहरण और मैन पेज देखता हूँ कि कैसे खोज, और जगह का उपयोग करने के लिए sed, awk, या gawk जैसी चीजों को किया जाता है।
लेकिन मेरे मामले में, मेरे पास एक नियमित अभिव्यक्ति है जिसे मैं एक विशिष्ट मूल्य निकालने के लिए एक पाठ फ़ाइल के खिलाफ चलाना चाहता हूं। मैं खोज और प्रतिस्थापन नहीं करना चाहता। इसे बैश से बुलाया जा रहा है। आइए एक उदाहरण का उपयोग करें:
उदाहरण नियमित अभिव्यक्ति:
.*abc([0-9]+)xyz.*
उदाहरण इनपुट फ़ाइल:
a
b
c
abc12345xyz
a
b
c
जितना सरल यह लगता है, मैं सही तरीके से sed / awk / gawk को कॉल करने का तरीका नहीं जान सकता। मैं जो करने की उम्मीद कर रहा था, वह मेरी बैश स्क्रिप्ट के भीतर से है:
myvalue=$( sed <...something...> input.txt )
मैंने जिन चीजों की कोशिश की है उनमें शामिल हैं:
sed -e 's/.*([0-9]).*/\\1/g' example.txt # extracts the entire input file
sed -n 's/.*([0-9]).*/\\1/g' example.txt # extracts nothing