1

我是 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.

干杯

4

2 回答 2

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'

该脚本将行首之后或之后的任何字母大写.。这足以满足您的目的吗?

于 2013-08-19T15:06:55.787 回答
0

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

如果文本文件中有标题,那么除非您有办法分隔标题,否则它会变得有点棘手。

man sed
于 2013-08-19T15:04:40.930 回答