GNU ile sed:
sed -E 's/[[:alpha:]]+/\u&/3'
Her satırdaki üçüncü harf dizisini büyük harfle yazacaktır.
Yararlanmak için , her her hat harflerinin üçüncü dizisi:
sed -E 's/(([[:alpha:]]+[^[:alpha:]]+){2})([[:alpha:]]+)/\1\u\3/g'
GNU ile tüm girdideki her üç harf dizisini büyük harf yapmak içinawk :
awk -v RS='[^[:alpha:]]+' -v ORS= '
NR % 3 == 0 {$0=toupper(substr($0,1,1)) substr($0,2)}
{print $0 RT}'
Veya perl:
perl -Mopen=locale -pe 's/\p{alpha}+/++$n % 3 == 0 ? "\u$&" : "$&"/ge'
İken [[:alpha:]]karakter sınıfı bazı sistemlerde biraz rastgele olabilir (GNU sistemlerinde örneğin o Arapça olanlar (0123456789) hariç tutulması ile birçok rakamları içerir), Perl en \p{...}Unicode karakter özelliklerine dayanır. Böylece \p{alpha}tüm alfabe harfleri ve harf olmayan alfabetik karakterler içerecektir.
Aksanları birleştirmeyi içermeyecektir, ancak bu, benzer Stéphanekelimelerin iki ayrı kelime olarak kabul edileceği anlamına gelir .
Bunun yerine aşağıdakileri isteyebilirsiniz:
perl -Mopen=locale -pe 's/[\p{alpha}\p{mark}]+/++$n % 3 == 0 ? "\u$&" : "$&"/ge'
Yine de çok fazla dahil olabilir.
Ayrıca GNU'nun aksine sed, Perl'lerin ( bir bitişik karakterin olduğu yer) \ugibi kelimeleri (2 karakter ve ) olarak doğru şekilde dönüştüreceğini unutmayın .fiddlefiFiddleFi