本篇文章為大家展示了tr命令怎么在Linux系統(tǒng)中使用,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
創(chuàng)新互聯(lián)是一家企業(yè)級(jí)云計(jì)算解決方案提供商,超15年IDC數(shù)據(jù)中心運(yùn)營(yíng)經(jīng)驗(yàn)。主營(yíng)GPU顯卡服務(wù)器,站群服務(wù)器,成都電信服務(wù)器托管,海外高防服務(wù)器,大帶寬服務(wù)器,動(dòng)態(tài)撥號(hào)VPS,海外云手機(jī),海外云服務(wù)器,海外服務(wù)器租用托管等。
用法:tr [選項(xiàng)]... SET1 [SET2]
從標(biāo)準(zhǔn)輸入中替換、縮減和/或刪除字符,并將結(jié)果寫(xiě)到標(biāo)準(zhǔn)輸出。
-c, -C, --complement 首先補(bǔ)足SET1
-d, --delete 刪除匹配SET1 的內(nèi)容,并不作替換
-s, --squeeze-repeats 如果匹配于SET1 的字符在輸入序列中存在連續(xù)的
重復(fù),在替換時(shí)會(huì)被統(tǒng)一縮為一個(gè)字符的長(zhǎng)度
-t, --truncate-set1 先將SET1 的長(zhǎng)度截為和SET2 相等
--help 顯示此幫助信息并退出
--version 顯示版本信息并退出
SET 是一組字符串,一般都可按照字面含義理解。解析序列如下:
\NNN 八進(jìn)制值為NNN 的字符(1 至3 個(gè)數(shù)位)
\\ 反斜杠
\a 終端鳴響
\b 退格
\f 換頁(yè)
\n 換行
\r 回車(chē)
\t 水平制表符
\v 垂直制表符
字符1-字符2 從字符1 到字符2 的升序遞增過(guò)程中經(jīng)歷的所有字符
[字符*] 在SET2 中適用,指定字符會(huì)被連續(xù)復(fù)制直到吻合設(shè)置1 的長(zhǎng)度
[字符*次數(shù)] 對(duì)字符執(zhí)行指定次數(shù)的復(fù)制,若次數(shù)以 0 開(kāi)頭則被視為八進(jìn)制數(shù)
[:alnum:] 所有的字母和數(shù)字
[:alpha:] 所有的字母
[:blank:] 所有呈水平排列的空白字符
[:cntrl:] 所有的控制字符
[:digit:] 所有的數(shù)字
[:graph:] 所有的可打印字符,不包括空格
[:lower:] 所有的小寫(xiě)字母
[:print:] 所有的可打印字符,包括空格
[:punct:] 所有的標(biāo)點(diǎn)字符
[:space:] 所有呈水平或垂直排列的空白字符
[:upper:] 所有的大寫(xiě)字母
[:xdigit:] 所有的十六進(jìn)制數(shù)
[=字符=] 所有和指定字符相等的字符
僅在SET1 和SET2 都給出,同時(shí)沒(méi)有-d 選項(xiàng)的時(shí)候才會(huì)進(jìn)行替換。
僅在替換時(shí)才可能用到-t 選項(xiàng)。如果需要SET2 將被通過(guò)在末尾添加原來(lái)的末字符的方式
補(bǔ)充到同SET1 等長(zhǎng)。SET2 中多余的字符將被省略。只有[:lower:] 和[:upper:]
以升序展開(kāi)字符;在用于替換時(shí)的SET2 中以成對(duì)表示大小寫(xiě)轉(zhuǎn)換。-s 作用于SET1,既不
替換也不刪除,否則在替換或展開(kāi)后使用SET2 縮減。
tr命令中的參數(shù) -c 比較實(shí)用,可以用字符串1中字符集的補(bǔ)集替換此字符集,要求字符集為A S C I I。然后在終端上試了一條命令:
代碼如下:
tr -cs "[a-z][A-Z]" "[\012*]" <diary.txt
這是將文件 diary.txt 內(nèi)的非字符數(shù)據(jù)轉(zhuǎn)換成換行符,然后用 -s 選項(xiàng)刪除所有重復(fù)出現(xiàn)字符序列,只保留第一個(gè);即將重復(fù)出現(xiàn)字符串壓縮為一個(gè)字符串。
后來(lái)仔細(xì)看這條命令時(shí),發(fā)現(xiàn)在 \012 后面加了個(gè) * ,當(dāng)我去掉這個(gè) * 時(shí),再運(yùn)行,發(fā)現(xiàn)得出的結(jié)果全在同一行,并且用 ] (左中括號(hào))隔開(kāi),然后我又試著 用 \n 代替 \012,
發(fā)現(xiàn)也是只有在 \n 后加 * 才得出正確的結(jié)果。后來(lái)將中括號(hào)去掉。這是不要 * 時(shí)可以輸出正確結(jié)果,發(fā)而加了 * 后會(huì)將結(jié)果都輸出在一行,中間用 * 隔開(kāi)。
猜想:是否在加中括號(hào)后,里面的特殊字符后都要加 *,無(wú)論是用字母表示的,還是用八進(jìn)制數(shù)表示的。
下面再舉一些例子:
代碼如下:
[root@localhost zhangy]# echo "TANK" |tr A-Z a-z #大寫(xiě)字母轉(zhuǎn)小寫(xiě)
tank
代碼如下:
[root@localhost zhangy]# echo 'tank zhang' | tr a-z A-Z #小寫(xiě)字線轉(zhuǎn)大寫(xiě)
TANK ZHANG
代碼如下:
[root@localhost zhangy]# cat aaa.txt #原文件
aaa
bbb
代碼如下:
[root@localhost zhangy]# cat aaa.txt|tr 'a' 'c' #字母c替換字母a
ccc
bbb
代碼如下:
[root@localhost zhangy]# cat aaa.txt|tr -d 'a' #刪除所有字母a
bbb
代碼如下:
[root@localhost zhangy]# cat aaa.txt|tr -d '\n\t' 刪除文件file中出現(xiàn)的換行'\n'、制表'\t'字符
aaabbb
代碼如下:
[root@localhost zhangy]# cat aaa.txt|tr -s [a-zA-Z] #刪除重復(fù)的字母
a
b
代碼如下:
[root@localhost zhangy]# cat aaa.txt|tr -s '\n' #刪除空行
aaa
bbb
代碼如下:
[root@localhost zhangy]# cat aaa.txt |tr -s '\011' '\040' #用空格符\040替換制表符\011
aaa
bbb
代碼如下:
# tr a c < test #將test文件中的a變成c
上述內(nèi)容就是tr命令怎么在Linux系統(tǒng)中使用,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
文章標(biāo)題:tr命令怎么在Linux系統(tǒng)中使用
文章轉(zhuǎn)載:http://aaarwkj.com/article6/ihpgog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、外貿(mào)建站、手機(jī)網(wǎng)站建設(shè)、定制開(kāi)發(fā)、Google、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)