使用 Sed 将每个单词的首字母大写 [英] Using Sed to capitalize the first letter of each word

查看:20
本文介绍了使用 Sed 将每个单词的首字母大写的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我想大写的数据:

molly w. bolt     334-78-5443
walter q. bugg    984-49-0032
noah p. way       887-12-0921
kerry t. bricks   431-09-1239
ping h. yu        109-32-9845

这是我迄今为止编写的脚本,用于将姓名的首字母大写,包括首字母

Here is the script I have written so far to capitalize the first letter of name including initial

h
s/(.).*/1/
y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
G
s/(.)
(.)(.*)/13/
/ [a-z]/{
h
s/([A-Z][a-z]* )([a-z]).*/2/
y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
G
s/(.)
([A-Z][a-z]* )(.)(.*)/214/
}
/ [a-z]/{
h
s/([A-Z][a-z]* )([a-z]).*/2/
y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
G
s/(.)
([A-Z][a-z]* )(.)(.*)/214/
}

它给了我:

MOLLY W. BOLT     334-78-544Molly 3. bolt     334-78-5443
WALTER Q. BUGG    984-49-003Walter 2. bugg    984-49-0032
NOAH P. WAY       887-12-092Noah 1. way       887-12-0921
KERRY T. BRICKS   431-09-123Kerry 9. bricks   431-09-1239
PING H. YU        109-32-984Ping 5. yu        109-32-9845

我只想拥有:

Molly W. Bolt     334-78-544
Walter Q. Bugg    984-49-003
Noah P. Way       887-12-092
Kerry T. Bricks   431-09-123
Ping H. Yu        109-32-984

我会改变什么?

推荐答案

这个 (GNU sed) 怎么样:

How about this (GNU sed):

$ sed 's/[a-z]/u&/g' myfile
Molly W. Bolt     334-78-5443
Walter Q. Bugg    984-49-0032
Noah P. Way       887-12-0921
Kerry T. Bricks   431-09-1239
Ping H. Yu        109-32-9845

这篇关于使用 Sed 将每个单词的首字母大写的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆