अपडेट : macOS बिग सुर (11.0) के साथ शुरू , sedअब केस-असंवेदनशील मिलान के लिए ध्वज का समर्थन करता हैI , इसलिए प्रश्न में कमांड को अब काम करना चाहिए (बीएसडी sedइसके संस्करण की रिपोर्ट नहीं करता है, लेकिन आप नीचे तिथि तक जा सकते हैं। का manपेज है, जो होना चाहिए March 27, 2017या अधिक हाल ही में); एक सरल उदाहरण:
$ sed 's/ö/@/I' <<<'FÖO'
F@O
नोट: I(अपरकेस) ध्वज का प्रलेखित रूप है, लेकिन iसाथ ही साथ काम भी करता है।
इसी तरह, के साथ शुरू MacOS बिग सुर (11.0) awkअब है लोकेल अवगत ( awk --versionरिपोर्ट करना चाहिए 20200816और हाल ही में या):
$ awk 'tolower($0)' <<<'FÖO'
föo
निम्नलिखित पर लागू होता है MacOS कैटालिना अप करने के लिए (10.15) :
स्पष्ट होने के लिए: macOS पर, sed- जो कि BSD कार्यान्वयन है - केस-असंवेदनशील मिलान का समर्थन नहीं करता है - विश्वास करना मुश्किल है, लेकिन सच है। पूर्व में स्वीकार किए जाते हैं जवाब है, जो अपने आप में एक से पता चलता जीएनयू sed आदेश, की वजह से है कि दर्जा प्राप्त perlआधारित समाधान टिप्पणी में उल्लेख किया है।
यह सुनिश्चित करने के लिए कि पर्ल वर्ण यूटीएफ -8 के माध्यम से विदेशी पात्रों के साथ काम करते हैं , जैसे कुछ का उपयोग करें:
perl -C -Mutf8 -pe 's/öœ/oo/i' <<< "FÖŒ" # -> "Foo"
-C धाराओं और फ़ाइलों के लिए UTF-8 समर्थन चालू करता है, मान लें कि वर्तमान स्थान UTF-8-आधारित है।
-Mutf8पर्ल को यूटीएफ -8 के रूप में स्रोत कोड की व्याख्या करने के लिए कहता है (इस मामले में, स्ट्रिंग पास हो गई है -pe) - यह अधिक क्रिया के छोटे बराबर है -e 'use utf8;'.धन्यवाद, मार्क रीड
(ध्यान दें कि उपयोग awkकरना एक विकल्प नहीं है , जैसा awkकि macOS (यानी, BWK awk और BSD awk ) पूरी तरह से स्थानों से पूरी तरह से अनभिज्ञ प्रतीत होता है - इसके tolower()और toupper()फ़ंक्शंस विदेशी वर्णों को अनदेखा करते हैं (और sub()/ gsub()शुरू करने के लिए केस-इंसेंसिटिव फ़्लैग नहीं होते हैं) साथ में)।)
sedऔर awkPOSIX मानक के संबंध पर एक नोट :
BSD sedऔर awkअपनी कार्यक्षमता को ज्यादातर POSIXsed और
POSIX के लिएawk जनादेश को सीमित करता है , जबकि उनके GNU समकक्ष कई और एक्सटेंशन लागू करते हैं।
Iएक GNU एक्सटेंशन है जो आपके sed की कॉपी के साथ उपलब्ध नहीं हो सकता है।