在Linux命令行內的大小寫轉換

2021-10-11 20:48:44 字數 2176 閱讀 4394

在編輯文字時大小寫常常是需要注意的地方,大小寫的轉換是很枯燥而繁瑣的工作,所幸,linux 提供了很多能讓這份工作變得容易的命令。接下來讓我們看看都有哪些完成大小寫轉換的命令。

tr 命令

tr (translate) 是能運用在命令列或者指令碼上的最簡單的大小寫轉換命令之一。例如如果你想要讓一串字串全部是大寫字母,你可以用如下所示的命令完成這個內容:

$ echo hello alvin | tr [:lower:] [:upper:]

hello alvin

1以下為該命令應用在指令碼上的例子,寫入檔案depts的內容全會是大寫的格式:

$ echo "enter department name: " | tr [:lower:] [:upper:] >> depts

上面命令的順序換為 [:upper:] [:lower:] 將會得到相反的結果,所有輸入的字母都將變為小寫字母:

$ echo "enter department name: " | tr [:upper:] [:lower:] >> depts

你可以用 a-z a-z 代替 [:upper:] [:lower:] 來達到相同的效果:

$ echo "enter department name: " | tr a-z a-z >> depts

awk 命令

awk 命令用 toupper 和 tolower 這兩個選項完成大小寫轉換。上文所述的對指令碼進行的大小寫轉換可以用這個命令以如下的方式完成:

$ echo "enter department name: " | awk 『』 >> depts

以上是轉換成大寫字母,下面為轉換為小寫字母的方法:

$ echo "enter department name: " | awk 『』 >> depts

sed 命令

sed (stream editor) 命令同樣能夠很好完成大小寫轉換的工作,下面的命令也能夠達到前面兩個命令的效果:

$ echo "enter department name: " | sed 『s/[a-z]/\u&/g』 >> depts

要想完成相反的轉換,只需把上面那條命令中的 u 換成 l 、[a-z] 換成 [a-z] 即可:

$ echo "enter department name: " | sed 『s/[a-z]/\l&/g』 >> depts

修改檔案裡文字內容的大小寫格式

awk 和 sed 命令都可以完成對整個文件內容的大小寫轉換工作,所以如果你需要把整個文件內容轉換成小寫,你可以用如下命令以小寫的形式輸出某檔案的內容至螢幕上:

$ awk 『』 depts

其結果如下:

enter department name:

finance

billing

bookkeeping12

3注意此結果只是將列印在螢幕的內容轉換為了小寫,本身文件內的大寫字母並無變動,使用 cat depts 命令檢視便可知道。如果你想要確實地修改文件內容的大小寫,你可以用如下命令完成:

$ awk 『』 depts > depts-

$ mv depts- depts

1sed 命令可以完成和 awk 相同的功能,只是用法上略有不同,其使用方法如下:

$ sed 『s/[a-z]/\l&/g』 depts

只讓首字母大寫

只讓一串字串中各個單詞的首字母大寫,可以用如下的命令完成:

$ echo design & engineering| sed -e 「s/\b(.)/\u\1/g」

design & engineering

1上面這一條命令可以只讓首字母大寫而其他字母不變。

確保只有首字母大寫

當你需要對一大批文字進行這個操作的時候,比如要以正確的格式顯示一大批人的姓名時,需要做的事情會變得稍微難一些。這裡提供兩種方法完成這個任務:

用 sed 命令完成

為了確保結果正確,需要更加複雜的 sed 命令格式:

$ echo design & engineering | sed 『s/\b([[:alpha:]])([[:alpha:]]*)\b/\u\1\l\2/g』

design & engineering

1用 python **完成

如果你的 linux 上安裝了 python ,你可以用如下的命令完成對文字的首字母大寫格式化,python **比上文的 sed 命令的正則式要容易理解多了:

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

在大小寫之間轉換文字可能非常繁瑣,幸運的是linux提供了一些命令,這些命令可以使工作變得非常簡單。環境 centos7 使用tr 如果有乙個字串要確保全部是大寫的,只需通過tr命令替換 root localhost echo hello world tr lower upper hello wor...

mysql在linux下區分大小寫

用root帳號登入後,在 etc my.cnf 中的 mysqld 後新增新增lower case table names 1,重啟 mysql 服務,這時已設定成功 不區分表名的大小寫 lower case table names引數詳解 lower case table names 0 其中0 ...

java android 金額大小寫資料的轉換

public class change 數字金額大寫轉換,思想先寫個完整的然後將如零拾替換成零 要用到正規表示式 public static string digituppercase double n string digit string unit string head n 0?負 n mat...