मैं कुछ इनपुट को स्वच्छ करना चाहता हूं और स्वीकार्य इनपुट के साथ कई वर्णों को प्रतिस्थापित करना चाहता हूं, उदा। एक डेनिश 'å
' aa
'के साथ।एक बयान में एकाधिक प्रतिस्थापन के लिए sed में नियमित अभिव्यक्ति
यह कई कथनों का उपयोग करके आसानी से किया जाता है, उदाहरण के लिए /æ/ae/
, /å/aa/
, /ø/oe/
, लेकिन टूल सीमाओं के कारण, मैं इसे एक नियमित अभिव्यक्ति में करने में सक्षम होना चाहता हूं।
मैं प्रासंगिक मामलों के सभी (/[(æ)(ø)(å)(Æ)(Ø)(Å)]/
) पकड़ कर सकते हैं, लेकिन मैं प्रतिस्थापन मैं इसे करना चाहते हैं के रूप में (लेकिन शायद पूरी तरह से के रूप में इरादा) काम नहीं करता:
$ temp="RødgrØd med flæsk"
$ echo $temp
RødgrØd med flæsk
$ echo $temp | sed 's/[(æ)(ø)(å)(Æ)(Ø)(Å)]/(ae)(oe)(aa)(Ae)(Oe)(Aa)/g'
R(ae)(oe)(aa)(Ae)(Oe)(Aa)dgr(ae)(oe)(aa)(Ae)(Oe)(Aa)d med fl(ae)(oe)(aa)(Ae)(Oe)(Aa)sk
(पहले गूंज लाइन को दिखाने के लिए यह जरूरी है कि है एक एन्कोडिंग समस्या नहीं है)
बस एक तरफ के रूप में, टूल समस्या यह है कि मुझे Sublime Text 2 snippet में एक ही रेगेक्स का उपयोग करना चाहिए।
कोई भी यह समझने में सक्षम है कि मेरे रेगेक्स स्टेटमेंट में क्या गलत है?
अग्रिम धन्यवाद।
ब्लाग, ज़ाहिर है। मुझे सब्लिमे टेक्स्ट स्निपेट उपयोग पर ज़ोर देना चाहिए था, लेकिन यह मुख्य प्रश्न का बिल्कुल सही जवाब है। – Jan
@ जेन, धन्यवाद। मुझे नहीं लगता कि आप एक एकल रेगेक्स लिख सकते हैं जो कई संभावित मैचों में से एक को कई प्रतिस्थापनों में से एक के साथ बदल देता है, खासकर 'sed' के साथ नहीं। –