Linux 中实现文本中所有的单词的第一个字符大写,其余字符小写

 

001、

[root@PC1 test]# ls
a.txt
[root@PC1 test]# cat a.txt                                                               ## 测试数据
afdf    eDET    FDSS
FFde    fexk    mxnd                                                                                          ## 此处应该是个2
[root@PC1 test]# cat a.txt | awk '{for(i = 1; i <=  NF; i++) {$i = toupper(substr($i,1,1)) tolower(substr($i,1))}}1'     ## 将第一个字符转换为大写,其余的为小写
Aafdf Eedet Ffdss
Fffde Ffexk Mmxnd

 

002、

[root@PC1 test]# ls
a.txt
[root@PC1 test]# cat a.txt             ## 测试数据
afdf    eDET    FDSS
FFde    fexk    mxnd
[root@PC1 test]# cat a.txt | awk '{for(i = 1; i <= NF; i++) {$i = toupper(substr($i,1,1)) tolower(substr($i,2)); printf("%s\t", $i)}; printf("\n")}'
Afdf    Edet    Fdss
Ffde    Fexk    Mxnd
[root@PC1 test]# cat a.txt | awk '{for(i = 1; i <= NF; i++) {$i = toupper(substr($i,1,1)) tolower(substr($i,2)); printf("%s\t", $i)}; printf("\n")}'| cat -A
Afdf^IEdet^IFdss^I$
Ffde^IFexk^IMxnd^I$
[root@PC1 test]# cat a.txt | awk '{for(i = 1; i <= NF; i++) {$i = toupper(substr($i,1,1)) tolower(substr($i,2)); printf("%s\t", $i)}; printf("\n")}'|sed 's/\s$//' | cat -A     ## 将每个单词首字母转换为大写,其余为小写
Afdf^IEdet^IFdss$
Ffde^IFexk^IMxnd$

 。

 

posted @ 2024-09-22 19:40  小鲨鱼2018  阅读(8)  评论(0编辑  收藏  举报