使用函数,数组和&amp ;;将大写字母转换为小写字母。 AWK

时间:2013-02-18 17:41:56

标签: shell awk

如何将文件的每个句子中的第一个字母大写并将其他大写字母转换为小写(如果有)并将修改后的文本重写为相同的输入文件?

输入文件:

  

tHiS是最重要的.IT用于指定sCript.whICh是useD   为小型企业提供融资服务。

4 个答案:

答案 0 :(得分:1)

使用sed

$ sed -r 's/(.*)/\L\1/;s/((^|\.)\s*.)/\U\1/g' file
This is the test file.It is used for testing a script.Which is used for converting capital letters to small letters.

# Save changes to file
$ sed -ri 's/(.*)/\L\1/;s/((^|\.)\s*.)/\U\1/g' file

答案 1 :(得分:0)

您可以在Perl中使用tr subroutine

$ cat original-file.txt | perl -ne 'tr/A-Za-z/a-zA-Z/; print;' \
    > new-file-with-toggled-case.txt
$ mv new-file-with-toggled-case.txt original-file.txt

答案 2 :(得分:0)

这样的东西?

awk '{sub($0,tolower($0)); sub(/./, toupper(substr($0,1,1)))}1' RS=. ORS=. file

输出:

This is the test file.It is used for testing a script.Which is used for converting capital letters to small letters.

这适用于以结尾的句子,但不适用于感叹号,问号等。

答案 3 :(得分:0)

如果你想要它在perl中非常简单:

s/(\w+)/\u\L$1/g

检查与您的查询相关的herehere