GNU के साथ sed:
sed -E 's/[[:alpha:]]+/\u&/3'
प्रत्येक पंक्ति से अक्षरों के तीसरे क्रम को बड़ा करेंगे।
प्रत्येक पंक्ति में अक्षरों के हर तीसरे क्रम को भुनाने के लिए :
sed -E 's/(([[:alpha:]]+[^[:alpha:]]+){2})([[:alpha:]]+)/\1\u\3/g'
जीएनयू के साथ पूरे इनपुट में अक्षरों के हर तीसरे अनुक्रम को कैपिटल करने के लिए awk:
awk -v RS='[^[:alpha:]]+' -v ORS= '
NR % 3 == 0 {$0=toupper(substr($0,1,1)) substr($0,2)}
{print $0 RT}'
या साथ perl:
perl -Mopen=locale -pe 's/\p{alpha}+/++$n % 3 == 0 ? "\u$&" : "$&"/ge'
हालांकि [[:alpha:]]वर्ण वर्ग कुछ प्रणालियों (जीएनयू सिस्टम पर उदाहरण के लिए, जो कि अरबी के अपवर्जन के साथ कई अंक शामिल हैं) (0123456789) पर थोड़ा यादृच्छिक हो सकता है, पर्ल \p{...}यूनिकोड वर्ण गुणों पर आधारित है। तो उन \p{alpha}सभी अक्षर में अक्षर शामिल होंगे और गैर-अक्षर वर्णमाला भी।
इसमें डायक्ट्रीक्स का संयोजन शामिल नहीं होगा, जिसका अर्थ है कि जैसे शब्दों Stéphaneको दो अलग-अलग शब्दों के रूप में माना जाएगा।
तो आप इसके बजाय चाहते हो सकता है:
perl -Mopen=locale -pe 's/[\p{alpha}\p{mark}]+/++$n % 3 == 0 ? "\u$&" : "$&"/ge'
हालांकि यह भी कई सहित अंत हो सकता है।
यह भी ध्यान दें कि GNU के विपरीत sed, पर्ल (2 अक्षरों और ) के लिए पर्ल (जहां एक लिगचर कैरेक्टर है) \uजैसे शब्दों को सही ढंग से बदल देगा ।fiddlefiFiddleFi