我正在尝试制作一个sed脚本,它将成为每个的第一个字母
molly w. bolt 334-78-5443 walter q. bugg 984-49-0032 noah p. way 887-12-0921
所以我希望它看起来像这样:
Molly W. Bolt 334-78-5443 Walter Q. Bugg 984-49-0032 Noah P. Way 887-12-0921
到目前为止,我有以下脚本,但它只会大写它遇到的前两个单词,即.制作Molly W. bolt.我无法弄清楚如何修改脚本以获得姓氏大写.我需要添加什么?
h s/\(.\).*/\1/ y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMnopQRSTUVWXYZ/ G s/\(.\)\n\(.\)\(.*\)/\1\3/ / [a-z]/{ h s/\([A-Z][a-z]* \)\([a-z]\).*/\2/ y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMnopQRSTUVWXYZ/ G s/\(.\)\n\([A-Z][a-z]* \)\(.\)\(.*\)/\2\1\4/ }
解决方法
这个gnu sed one liner可以帮到你:
sed 's/\b./\u&/g' file
测试您的数据:
kent$ cat f molly w. bolt 334-78-5443 walter q. bugg 984-49-0032 noah p. way 887-12-0921 kent$ sed 's/\b./\u&/g' f Molly W. Bolt 334-78-5443 Walter Q. Bugg 984-49-0032 Noah P. Way 887-12-0921