在Linux命令列中進行大小寫字元轉換

大雄45發表於2020-04-09
導讀 在大小寫之間轉換文字可能非常繁瑣,幸運的是 提供了一些 ,這些 可以使工作變得非常簡單。
環境

7

使用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
read -p "Enter department name: " dept
echo $dept | tr [:upper:] [:lower:] >> depts

也可以使用”a-z” “A-Z”來替換大小寫。

#!/bin/bash
read -p "Enter department name: " dept
echo $dept | tr a-z A-Z>> depts

下面幾個函式是tr內建的:

  • [:alnum:] 所有字母和數字
  • [:alpha:] 所有字母
  • [:blank:] 所有空白
  • [:cntrl:] 所有控制字元
  • [:digit:] 所有數字
  • [:graph:] 所有可列印字元,不包括空格
  • [:lower:] 所有小寫字元
  • [:print:] 所有可列印字元,包括空格
  • [:punct:] 所有的標點符號
  • [:upper:] 所有大寫字元
使用awk

在awk中可以使用 toupper()tolower()函式,來轉換大小寫。
下面例項內容在文字里面寫入,將輸入的小寫內容轉換為大寫:

#!/bin/bash
read -p "Enter department name: " dept
echo $dept | awk ‘{print toupper($0)}’ >> depts

下面例項內容在文字里面寫入,將輸入的大寫內容轉換為小寫:

#!/bin/bash
read -p "Enter department name: " dept
echo $dept | awk ‘{print tolower($0)}’ >> depts
使用sed

在sed中可以使用 \U&\L&函式,來轉換大小寫。

使用sed,將小寫轉換成大寫:

#!/bin/bash
read -p "Enter department name: " dept
echo $dept | sed 's/[a-z]/\U&/g' >> depts

使用sed,將大寫轉換成小寫:

#!/bin/bash
read -p "Enter department name: " dept
echo $dept | sed 's/[A-Z]/\L&/g' >> depts
總結

在linux中有很多方式可以替換大小寫字母,你可以選擇一個能記住的命令使用。

本文原創地址:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2685221/,如需轉載,請註明出處,否則將追究法律責任。

相關文章