這篇文章將為大家詳細(xì)講解有關(guān)在 Linux命令行中如何轉(zhuǎn)換大小寫,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
公司主營業(yè)務(wù):網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出舞鋼免費(fèi)做網(wǎng)站回饋大家。
使用 tr
tr(translate)命令是在命令行或腳本中最容易使用的命令之一。如果你要確定要一串大寫字符串,你只需將它傳給 tr,如下所示:
$ echo Hello There | tr [:lower:] [:upper:] HELLO THERE
下面是一個(gè)在腳本中使用這個(gè)命令的例子,當(dāng)你要確保添加到文件中的所有文本都使用大寫形式以保持一致性時(shí)(LCTT 譯注:這里輸入部門名稱作為示例):
#!/bin/bash echo -n "Enter department name: " read dept echo $dept | tr [:lower:] [:upper:] >> depts
將順序切換為 [:upper:] [:lower:] 會(huì)產(chǎn)生相反的效果,將所有大寫的部門名稱都轉(zhuǎn)換為小寫:
echo $dept | tr [:upper:] [:lower:] >> depts
同樣,你可以使用 sed 命令的 A-Z 和 a-z 字符串完成相同的操作:
echo $dept | tr a-z A-Z >> depts
毫無疑問,反轉(zhuǎn) a-z 和 A-Z 字符串的順序?qū)a(chǎn)生相反的效果,將文本全部變?yōu)樾憽?/p>
使用 awk
awk 命令可讓你使用它的 toupper 和 tolower 選項(xiàng)執(zhí)行相同的操作。上例腳本中的命令可以用這種方式代替:
echo $dept | awk '{print toupper($0)}' >> depts
相反操作(切換為小寫)如下所示:
echo $dept | awk '{print tolower($0)}' >> depts
使用 sed
sed(stream editor)命令也可用于切換大小寫。它與上面顯示的兩個(gè)命令中的第一個(gè)具有相同的效果。
echo $dept | sed 's/[a-z]/\U&/g' >> depts
從大寫字母切換到小寫字母只需將行尾附近的 U 替換為 L。
echo $dept | sed 's/[A-Z]/\L&/g' >> depts
操作文件中的文本
awk 和 sed 都能更改整個(gè)文件的文本大小寫。因此,你發(fā)現(xiàn)你的老板需要所有部門名稱的小寫么?沒問題。只需帶上文件名運(yùn)行以下命令:
$ awk '{print tolower($0)}' depts finance billing bookkeeping
如果要覆蓋 depts 文件,而不僅僅是以小寫形式顯示,則需要執(zhí)行以下操作:
$ awk '{print tolower($0)}' depts > depts- $ mv depts- depts
但是,使用 sed 進(jìn)行更改,你可以避免最后一步,因?yàn)?sed 可以“原地”編輯文件,如下所示,文件完整,但文本全部小寫:
$ sed 's/[A-Z]/\L&/g' depts
僅將首字母轉(zhuǎn)換為大寫
要僅將字符串中單詞的首字母轉(zhuǎn)換為大寫,那么可以執(zhí)行以下操作:
$ echo design \& engineering| sed -e "s/\b\(.\)/\\u\1/g" Design & Engineering
該命令將確保首字母大寫,但不會(huì)更改其余字母。
確保只有首字母大寫
當(dāng)要更改文本以使只有首字母大寫時(shí),這更具挑戰(zhàn)性。假設(shè)你正在處理一個(gè)工作人員姓名列表,并且希望以正常的“名 姓”方式對其格式化。
1. 使用 sed
你可以使用更復(fù)雜的 sed 命令來確保以下結(jié)果:
$ echo design \& ENGINEERING | sed 's/\b\([[:alpha:]]\)\([[:alpha:]]*\)\b/\\u\1\L\2/g' Design & Engineering
2. 使用 Python
如果你已安裝 Python,你可以運(yùn)行這樣的命令,它還可以設(shè)置文本格式,以便每個(gè)單詞只有首字母大寫,并且它可能比上面顯示的 sed 命令更易于解析:
$ echo -n "design & engineering" | python3 -c "import sys; print(sys.stdin.read().title())" Design & Engineering
關(guān)于“在 Linux命令行中如何轉(zhuǎn)換大小寫”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。