我是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.
干杯
答案 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