我是 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.
干杯
我是 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.
干杯
你可以使用 sed
text = 'i am Andrew. you are Jhon. here we are, forever.'
echo $text | sed -E 's/(^[a-z]|\. [a-z])/\U&\E/g'
该脚本将行首之后或之后的任何字母大写.
。这足以满足您的目的吗?
最简单的方法是使用带有正则表达式的 sed 来查找第一句以及此后一段时间之后出现的任何字母。全局应用正则表达式。
如果文本文件中有标题,那么除非您有办法分隔标题,否则它会变得有点棘手。
man sed