在大小寫之間轉換文本可能非常繁瑣,幸運的是Linux提供了一些指令,這些指令可以使工作變得非常簡單。
環境
Centos7
使用tr
如果有一個字元串要確定全部是大寫的,隻需通過tr指令替換:
[root@localhost ~]# echo "Hello World" | tr [:lower:] [:upper:]
HELLO WORLD
下面是在腳本中使用此指令的示例,需要確定添加到檔案中的所有文本都是大寫,以保持一緻性:
!/bin/bash
read -p "Enter department name: " dept
echo $dept | tr [:lower:] [:upper:] >> depts
将順序切換為[:upper:] [:lower:]會會将所有大寫字元轉換成小寫:
#!/bin/bash
echo $dept | tr [:upper:] [:lower:] >> depts
也可以使用”a-z” “A-Z”來替換大小寫。
echo $dept | tr a-z A-Z>> depts
下面幾個函數是tr内置的:
[:alnum:] 所有字母和數字
[:alpha:] 所有字母
[:blank:] 所有空白
[:cntrl:] 所有控制字元
[:digit:] 所有數字
[:graph:] 所有可列印字元,不包括空格
[:lower:] 所有小寫字元
[:print:] 所有可列印字元,包括空格
[:punct:] 所有的标點符号
[:upper:] 所有大寫字元
使用awk
在awk中可以使用toupper()和tolower()函數,來轉換大小寫。
下面執行個體内容在文本裡面寫入,将輸入的小寫内容轉換為大寫:
echo $dept | awk ‘{print toupper($0)}’ >> depts
下面執行個體内容在文本裡面寫入,将輸入的大寫内容轉換為小寫:
echo $dept | awk ‘{print tolower($0)}’ >> depts
使用sed
在sed中可以使用\U&和\L&函數,來轉換大小寫。
使用sed,将小寫轉換成大寫:
echo $dept | sed 's/[a-z]/\U&/g' >> depts
使用sed,将大寫轉換成小寫:
echo $dept | sed 's/[A-Z]/\L&/g' >> depts
總結
在linux中有很多方式可以替換大小寫字母,你可以選擇一個能記住的指令使用。