如何使用shell脚本大写每个句子中第一个单词的第一个字母?

时间:2013-08-19 15:00:23

标签: shell

我是shell脚本的新手,我试图从一个名为input.txt的txt文件中将每个句子中第一个单词的每个首字母大写,我希望这个输入文件是shell脚本的参数

 ./script.sh input.txt

示例输入文件:

i am Andrew. you are Jhon. here we are, forever.

结果文件:

I am Andrew. You are Jhon. Here we are, forever.

干杯

2 个答案:

答案 0 :(得分:2)

你可以使用sed

text = 'i am Andrew. you are Jhon. here we are, forever.'
echo $text | sed -E 's/(^[a-z]|\. [a-z])/\U&\E/g'

该脚本会将行开头后或.之后出现的任何字母大写。这对你来说足够了吗?

答案 1 :(得分:0)

最简单的方法是使用带有正则表达式的sed来查找第一个句子以及之后一段时间之后出现的任何字母。全局应用正则表达式。

如果文本文件中有标题,那么除非你有一种分隔标题的方法,否则它会变得有点棘手。

man sed