我想把以某些字母开头的单词的最后一个字母大写。
示例:At The Movies
到AT ThE Movies
我试过......
$ sed 's/\<[ABEXY][[:alpha:]]*\([[:alpha:]]\>\)/\U\1/g' file1
但这取代了我试图用他们的最后一个字母的大写字母改变的所有单词
也尝试过:
$ sed '/\<[ABEXY][[:alpha:]]*\([[:alpha:]]\>\)/ y/\1abcdefghijklmnopqrstuvwxyz/\1ABCDEFGHIJKLMNOPQRSTUVWXYZ/' file1
但后退不能与sed y
合作所以我只是全部上限。
答案 0 :(得分:2)
捕获单词的开头,并将其包含在替换中:
sed 's/\<\([ABEXY][[:alpha:]]*\)\([[:alpha:]]\>\)/\1\U\2/g' file1