使用 sed 或 tr 将以指定 character/expression 开头的单词的最后一个字母大写
Using sed or tr to capitalize the last letter of words that begin with a specified character/expression
我想将以某些字母开头的单词的最后一个字母大写。
示例:At The Movies
至 AT ThE Movies
我试过了...
$ sed 's/\<[ABEXY][[:alpha:]]*\([[:alpha:]]\>\)/\U/g' file1
但这会将我要更改的所有单词替换为最后一个字母的大写
也尝试过:
$ sed '/\<[ABEXY][[:alpha:]]*\([[:alpha:]]\>\)/ y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' file1
但是回拨不适用于 sed y
所以我只是全部大写。
也捕获单词的开头,并将其包含在替换中:
sed 's/\<\([ABEXY][[:alpha:]]*\)\([[:alpha:]]\>\)/\U/g' file1
我想将以某些字母开头的单词的最后一个字母大写。
示例:At The Movies
至 AT ThE Movies
我试过了...
$ sed 's/\<[ABEXY][[:alpha:]]*\([[:alpha:]]\>\)/\U/g' file1
但这会将我要更改的所有单词替换为最后一个字母的大写
也尝试过:
$ sed '/\<[ABEXY][[:alpha:]]*\([[:alpha:]]\>\)/ y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' file1
但是回拨不适用于 sed y
所以我只是全部大写。
也捕获单词的开头,并将其包含在替换中:
sed 's/\<\([ABEXY][[:alpha:]]*\)\([[:alpha:]]\>\)/\U/g' file1