在這里用到的意思是轉(zhuǎn)化,轉(zhuǎn)變,轉(zhuǎn)換,在linux下輸入tr --help查看一下提示:

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比南澗網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式南澗網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋南澗地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
全是英文?翻譯過來看下:
1、帶有最常用選項(xiàng)的tr命令格式為
這里:
-c 用字符串1中字符集的補(bǔ)集替換此字符集,要求字符集為ASCII。
-d 刪除字符串1中所有輸入字符。
-s 刪除所有重復(fù)出現(xiàn)字符序列,只保留第一個(gè);即將重復(fù)出現(xiàn)字符串壓縮為一個(gè)字符串。
input-file是轉(zhuǎn)換文件名。雖然可以使用其他格式輸入,但這種格式最常用。
2、字符范圍
指定字符串1或字符串2的內(nèi)容時(shí),只能使用單字符或字符串范圍或列表。
[a-z] a-z內(nèi)的字符組成的字符串。
[A-Z] A-Z內(nèi)的字符組成的字符串。
[0-9] 數(shù)字串。
\octal 一個(gè)三位的八進(jìn)制數(shù),對應(yīng)有效的ASCII字符。
[O n] 表示字符O重復(fù)出現(xiàn)指定次數(shù)n。因此[O 2]匹配OO的字符串。
tr中特定控制字符的不同表達(dá)方式
實(shí)例:
1、將文件file中出現(xiàn)的"abc"替換為"xyz"
【注意】這里,凡是在t.txt文件中出現(xiàn)的"a"字母,都替換成"x"字母,"b"字母替換為"y"字母,"c"字母替換為"z"字母。而不是將字符串"abc"替換為字符串"xyz"。這里的替換不修改源文件
2、使用tr命令“統(tǒng)一”字母大小寫
大寫轉(zhuǎn)小寫只需要把tr后面的參數(shù)換個(gè)位置即可!
3、把文件中的數(shù)字0-9替換為a-j
4、刪除文件file中出現(xiàn)的"Snail"字符
【注意】這里,凡是在file文件中出現(xiàn)的'S','n','a','i','l'字符都會(huì)被刪除!而不是緊緊刪除出現(xiàn)的"Snail”字符串。
5、刪除文件file中出現(xiàn)的換行'\n'、制表'\t'字符
不可見字符都得用轉(zhuǎn)義字符來表示的,這個(gè)都是統(tǒng)一的。
7、刪除空行
8、刪除Windows文件“造成”的'^M'字符
【注意】這里-s后面是兩個(gè)參數(shù)"\r"和"\n",用后者替換前者
9、用空格符\040替換制表符\011
10、把路徑變量中的冒號":",替換成換行符"\n"
實(shí)際應(yīng)用1,加密解密:
上面是一個(gè)非常有趣的小例子,通過映射來實(shí)現(xiàn)簡單的加密解密,看懂這個(gè)例子,可以接著往下看古羅馬時(shí)期發(fā)明的凱撒加密的一種變體ROT13
ROT13是它自己本身的逆反;也就是說,要還原ROT13,套用加密同樣的算法即可得,故同樣的操作可用再加密與解密。非常神奇!
實(shí)際應(yīng)用2,字符集補(bǔ)集:
set1的補(bǔ)集意味著從這個(gè)集合中包含set1中沒有的所有字符。最典型的用法就是從輸入文本中將不在補(bǔ)集中的所有字符全部刪除。例如:
在這里,補(bǔ)集中包含了除數(shù)字、空格字符和換行符之外的所有字符,因?yàn)橹付?d,所以這些字符全部都會(huì)被刪除。
實(shí)際應(yīng)用3,用tr壓縮字符:
通過你的描述,替換命令如下:
1、tr 命令來進(jìn)行替換
[root@localhost ss1]# tr '111' '2222222' aa.txt
2、sed 命令
[root@localhost ss1]# sed ‘s/wyf/wzw/g’ ./person.txt
這里使用sed 內(nèi)置命令s 來實(shí)現(xiàn)替換功能,并且使用了全局替換標(biāo)志g 表示替換文件中匹配wyf的所有字符串。
溫馨提示:
1、tr 命令在接文件時(shí)比較特殊,需要輸入重定向符號 “”
2、凡是在文本中出現(xiàn)的“111”均應(yīng)轉(zhuǎn)換成“222222”,而不是僅僅將單個(gè)進(jìn)行轉(zhuǎn)換,這個(gè)要注意。
3、在使用sed 命令時(shí),要注意一下語法格式,將要替換的文本“wyf”放在第一個(gè)和第二個(gè)“/” 之間,將替換后的文本“wzw”放到第二個(gè)和第三個(gè)“/” 之間。這個(gè)要注意。
以上就是我的回答,在具體操作時(shí),可能會(huì)有出入,如有問題可??私信?+?關(guān)注,我會(huì)第一時(shí)間來進(jìn)行回復(fù)追答,希望我的回答能幫到你。
請你看一下tr的manual
man tr
NAME
tr - translate or delete characters
SYNOPSIS
tr [OPTION]... SET1 [SET2]
其中有一句
SET2 is extended to length of? SET1 by repeating its last character as necessary.
當(dāng)序列2比序列1短時(shí),序列2會(huì)重復(fù)最后一個(gè)字符,使得兩個(gè)序列字?jǐn)?shù)相同。
所以,你的實(shí)驗(yàn),其實(shí)是這樣的:
echo "HELLO WORLD" | tr 'A-Z' 'AahH'
等效于:
echo?"HELLO?WORLD"?|?tr?'ABCDEFGHIJKLMNOPQRSTUVWXYZ'??'AahHHHHHHHHHHHHHHHHHHHHHHH'
字符一對一替換如下:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
AahHHHHHHHHHHHHHHHHHHHHHHH
替換結(jié)果:
HHHHH HHHHH
#############################################
echo "HELLO WORLD" | tr 'A-Z' 'AahH}-'
ABCDEFGHIJKLMNOPQRSTUVWXYZ
AahH}---------------------
替換結(jié)果:
-}--- ----H
##############################################
echo "HELLO WORLD" | tr 'A-Z' 'a-'
ABCDEFGHIJKLMNOPQRSTUVWXYZ
a-------------------------
替換結(jié)果:
----- -----
從一個(gè)正常人的角度來說,這個(gè)命令應(yīng)該這么用啊:
echo "hello:world"|tr -c 'a-zA-Z' '\n'
用括號是錯(cuò)誤的。
使用預(yù)定義的字符集才用括號, 而且是[:alnum:]
標(biāo)題名稱:包含linuxtr命令完整的詞條
文章位置:http://chinadenli.net/article28/doghjjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、外貿(mào)建站、網(wǎng)頁設(shè)計(jì)公司、品牌網(wǎng)站設(shè)計(jì)、服務(wù)器托管、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)