天天看點

在Linux指令行中進行大小寫字元轉換!/bin/bash!/bin/bash!/bin/bash

在大小寫之間轉換文本可能非常繁瑣,幸運的是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中有很多方式可以替換大小寫字母,你可以選擇一個能記住的指令使用。

繼續閱讀