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$
。