溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

tr命令如何使用

發(fā)布時(shí)間:2022-02-19 09:39:20 來(lái)源:億速云 閱讀:133 作者:iii 欄目:開(kāi)發(fā)技術(shù)

今天小編給大家分享一下tr命令如何使用的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

通過(guò)使用tr,您可以非常容易地實(shí)現(xiàn) sed 的許多最基本功能。您可以將 tr 看作為 sed的(極其)簡(jiǎn)化的變體:它可以用一個(gè)字符來(lái)替換另一個(gè)字符,或者可以完全除去一些字符。您也可以用它來(lái)除去重復(fù)字符。

tr命令如何使用

命令格式

tr [option] ["string1"] ["string2"]

常用的選項(xiàng)有:

默認(rèn)選項(xiàng)。就是沒(méi)有任何選項(xiàng)的時(shí)候,tr默認(rèn)為替換操作,就是將string1在文件中出現(xiàn)的字符替換為string2中的字符,這里要注意的是替換關(guān)系。 -c選項(xiàng),用string1中字符的補(bǔ)集替換string1,這里的字符集為ASCII。 -d選項(xiàng),刪除文件中所有在string1中出現(xiàn)的字符。 -s選項(xiàng),刪除文件中重復(fù)并且在string1中出現(xiàn)的字符,只保留一個(gè)。 -c選項(xiàng)在使用時(shí),只是將string1替換為現(xiàn)在的補(bǔ)集,如在使用

inuxidc@Ubuntu:~/linuxidc.com$ echo "hello world,linuxidc.com,2019" | tr -c "0-9" "*"*************************2019*
tr命令如何使用
linuxidc@ubuntu:~/linuxidc.com$ echo "hello world,linuxidc.com,2019" | tr "0-9" "*"hello world,linuxidc.com,****
tr命令如何使用

可以看出,我們使用0-9,添加-c選項(xiàng)后,會(huì)把0-9替換為其補(bǔ)集,這時(shí)補(bǔ)集自然不包含0-9,而包含很多其它的字符,接下來(lái)就把所有的其它字符都替換成*號(hào),但不包含數(shù)字。

字符串的取值范圍

指定string或string2的內(nèi)容時(shí),只能使用單字符或字符串范圍或列表。 [a-z] a-z內(nèi)的字符組成的字符串。 [A-Z] A-Z內(nèi)的字符組成的字符串。 [0-9] 數(shù)字串。 \octal 一個(gè)三位的八進(jìn)制數(shù),對(duì)應(yīng)有效的ASCII字符。 [On] 表示字符O重復(fù)出現(xiàn)指定次數(shù)n。因此[O2]匹配OO的字符串。

控制字符的不同表達(dá)方式

速記符 含義 八進(jìn)制方式 \a Ctrl-G 鈴聲\007 \b Ctrl-H 退格符\010 \f Ctrl-L 走行換頁(yè)\014 \n Ctrl-J 新行\(zhòng)012 \r Ctrl-M 回車\015 \t Ctrl-I tab鍵\011 \v Ctrl-X \030 注意這些控制字符,如果想在linux下輸入,如我們可能需要輸入^M這種字符,只需ctrl+V+M同時(shí)按下即可。

字符替換

linuxidc@ubuntu:~/linuxidc.com$ echo "hello world,www.linuxidc.com" | tr "a-z" "A-Z"HELLO WORLD,WWW.LINUXIDC.COM
linuxidc@ubuntu:~/linuxidc.com$ echo "hello world,www.linuxidc.com" | tr "a-l" "A-Z"HELLo worLD,www.LInuxIDC.Com
linuxidc@ubuntu:~/linuxidc.com$ echo "hello world,www.linuxidc.com" | tr "a-z" "A-H"HEHHH HHHHD,HHH.HHHHHHDC.CHH
tr命令如何使用

第一行輸出就是將小寫換成大寫。 第二行輸出將小寫中的a-l分別換成A-L,而將小寫中的l以后的字符都不替換。 第三行輸出將小寫中的a-h換成A-H,而h以后的字符都換成H,因?yàn)楹笳叩奶鎿Q空間沒(méi)有前面的字符空間大,所以就重復(fù)后面的H,相當(dāng)于后面的字符是A-HHH……HHHHH。

如果我們想要進(jìn)行大小寫轉(zhuǎn)換,可以按下面的輸入:

tr "a-z" "A-Z"

去除重復(fù)字符

這個(gè)時(shí)候,所用的選項(xiàng)是-s選項(xiàng),如:

linuxidc@ubuntu:~/linuxidc.com$ echo "root,hello world,linuxidc.com" | tr -s "ao"  
rot,hello world,linuxidc.com
linuxidc@ubuntu:~/linuxidc.com$ echo "root,hello world,linuxidc.com" | tr -s "lo"  
rot,helo world,linuxidc.com
linuxidc@ubuntu:~/linuxidc.com$ echo "root,hello world,linuxidc.com" | tr -s "a-z"rot,helo world,linuxidc.com
linuxidc@ubuntu:~/linuxidc.com$ echo "root,hello world,linuxidc.com" | tr -s "0-9"root,hello world,linuxidc.com
tr命令如何使用

第一行表示將輸入字符串中的包含在”ao”字符集中的重復(fù)字符去掉,只留一個(gè)。因?yàn)椤県ello world,linuxidc.com”,只有o滿足條件,所以將linuxidc.com變成rot,把中間的兩個(gè)o變成一個(gè)。 第二行將hello和linuxidc.com兩個(gè)字符都?jí)嚎s了。 第三行表示將a-z中的除復(fù)字符都去掉。 第三行表示將字符串中的重復(fù)的且重復(fù)字符在0-9字符集中的字符去掉,這里沒(méi)有。

如果我們想要去掉空行,可以這樣操作:

tr -s "\n" "\012"

就是將重復(fù)的換行符去掉,只留一個(gè)。

刪除字符

-d選項(xiàng)和-s選項(xiàng)類似,只不過(guò)-d選項(xiàng)會(huì)刪除所有出現(xiàn)的字符。

linuxidc@ubuntu:~/linuxidc.com$ echo "root,hello world,linuxidc.com" | tr -d "a-h"  
root,llo worl,linuxi.om
linuxidc@ubuntu:~/linuxidc.com$ echo "root,hello world,linuxidc.com,2019" | tr -d "a-z"  
, ,.,2019
linuxidc@ubuntu:~/linuxidc.com$ echo "root,hello world,linuxidc.com,2019" | tr -d "0-9"  
root,hello world,linuxidc.com,
tr命令如何使用

以上就是“tr命令如何使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI