linux: tr

1. 用途

tr,translate的簡寫,主要用于壓縮重復(fù)字符,刪除文件中的控制字符以及進(jìn)行字符轉(zhuǎn)換操作。

2. 語法

tr [OPTION]... SET1 [SET2]

3. 參數(shù)

3.1 -s 壓縮重復(fù)字符

-s: squeeze-repeats弹囚,用SET1指定的字符來替換對應(yīng)的重復(fù)字符 (replace each input sequence of a repeated character that is listed in SET1 with a single occurrence of that character)

xiaosi@Qunar:~/test$ echo "aaabbbaacccfddd" | tr -s [abcdf] // abacfd

可以使用這一特點,刪除文件中的空白行领曼,實質(zhì)上跟上面一樣鸥鹉,都是用SET1指定的字符來替換對應(yīng)的重復(fù)字符

xiaosi@Qunar:~/test$ cat b.txt
I like football
Football is very fun!
Hello
xiaosi@Qunar:~/test$ cat b.txt | tr -s ["\n"]
I like football
Football is very fun!
Hello
3.2 -d 刪除字符

-d:delete,刪除SET1中指定的所有字符庶骄,不轉(zhuǎn)換(delete characters in SET1, do not translate)

xiaosi@Qunar:~/test$ echo "a12HJ13fdaADff" | tr -d "[a-z][A-Z]"
1213
xiaosi@Qunar:~/test$ echo "a1213fdasf" | tr -d [adfs]
1213
3.3 字符替換

-t:truncate毁渗,將SET1中字符用SET2對應(yīng)位置的字符進(jìn)行替換,一般缺省為-t

xiaosi@Qunar:~/test$ echo "a1213fdasf" | tr -t [afd] [AFO]  // A1213FOAsF

上述代碼將a轉(zhuǎn)換為A单刁,f轉(zhuǎn)換為F灸异,d轉(zhuǎn)換為O。

可以利用這一特點羔飞,實現(xiàn)大小字母的轉(zhuǎn)換

xiaosi@Qunar:~/test$ echo "Hello World I Love You" |tr -t [a-z] [A-Z]
HELLO WORLD I LOVE YOU
xiaosi@Qunar:~/test$ echo "HELLO WORLD I LOVE YOU" |tr -t [A-Z] [a-z]
hello world i love you

也可以利用字符集合進(jìn)行轉(zhuǎn)換

xiaosi@Qunar:~/test$ echo "Hello World I Love You" |tr -t [:lower:] [:upper:]
HELLO WORLD I LOVE YOU
xiaosi@Qunar:~/test$ echo "HELLO WORLD I LOVE YOU" |tr -t [:upper:] [:lower:]
hello world i love you

備注:

字符集合如下

\NNN 八進(jìn)制值的字符 NNN (1 to 3 為八進(jìn)制值的字符)
\\ 反斜杠
\a Ctrl-G 鈴聲
\b Ctrl-H 退格符
\f Ctrl-L 走行換頁
\n Ctrl-J 新行
\r Ctrl-M 回車
\t Ctrl-I tab鍵
\v Ctrl-X 水平制表符
CHAR1-CHAR2 從CHAR1 到 CHAR2的所有字符按照ASCII字符的順序
[CHAR*] in SET2, copies of CHAR until length of SET1
[CHAR*REPEAT] REPEAT copies of CHAR, REPEAT octal if starting with 0
[:alnum:] 所有的字母和數(shù)字
[:alpha:] 所有字母
[:blank:] 水平制表符肺樟,空白等
[:cntrl:] 所有控制字符
[:digit:] 所有的數(shù)字
[:graph:] 所有可打印字符,不包括空格
[:lower:] 所有的小寫字符
[:print:] 所有可打印字符逻淌,包括空格
[:punct:] 所有的標(biāo)點字符
[:space:] 所有的橫向或縱向的空白
[:upper:] 所有大寫字母
3.4 字符補(bǔ)集替換

-c:complement么伯,用SET2替換SET1中沒有包含的字符

xiaosi@Qunar:~/test$ cat a.txt
Monday     09:00
Tuesday    09:10
Wednesday  10:11
Thursday   11:30
Friday     08:00
Saturday   07:40
Sunday     10:00
xiaosi@Qunar:~/test$ cat a.txt | tr -c "[a-z][A-Z]" "#" | tr -s "#" | tr -t "#" "\n"
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

上面代碼中 tr -c "[a-z][A-Z]" "#" 表示將除大小字母以外的所有的字符都替換為#。

上面代碼可優(yōu)化為:

xiaosi@Qunar:~/test$ cat a.txt | tr -cs "[a-z][A-Z]" "\n"
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末卡儒,一起剝皮案震驚了整個濱河市田柔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌骨望,老刑警劉巖硬爆,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異锦募,居然都是意外死亡摆屯,警方通過查閱死者的電腦和手機(jī)邻遏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門糠亩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虐骑,“玉大人,你說我怎么就攤上這事赎线⊥⒚唬” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵垂寥,是天一觀的道長颠黎。 經(jīng)常有香客問我,道長滞项,這世上最難降的妖魔是什么狭归? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮文判,結(jié)果婚禮上过椎,老公的妹妹穿的比我還像新娘。我一直安慰自己戏仓,他們只是感情好疚宇,可當(dāng)我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赏殃,像睡著了一般敷待。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上仁热,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天榜揖,我揣著相機(jī)與錄音,去河邊找鬼股耽。 笑死根盒,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的物蝙。 我是一名探鬼主播炎滞,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼诬乞!你這毒婦竟也來了册赛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤震嫉,失蹤者是張志新(化名)和其女友劉穎森瘪,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體票堵,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡扼睬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窗宇。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡措伐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出军俊,到底是詐尸還是另有隱情侥加,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布粪躬,位于F島的核電站担败,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏镰官。R本人自食惡果不足惜提前,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泳唠。 院中可真熱鬧岖研,春花似錦、人聲如沸警检。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扇雕。三九已至拓售,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間镶奉,已是汗流浹背础淤。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留哨苛,地道東北人鸽凶。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像建峭,于是被迫代替她去往敵國和親玻侥。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Linux tr 命令用于轉(zhuǎn)換或刪除文件中的字符亿蒸。 tr 指令從標(biāo)準(zhǔn)輸入設(shè)備讀取數(shù)據(jù)凑兰,經(jīng)過字符串轉(zhuǎn)譯后,將結(jié)果輸出...
    姜淑均閱讀 1,182評論 0 1
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,175評論 2 33
  • 《ijs》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 5,192評論 0 7
  • 因為遇見你边锁,我才明白姑食。 當(dāng)世界上有一個你的出現(xiàn),那么所有的人都變成了將就茅坛。而我不愿意將就音半,你就是我的不將就。 ...
    余生只為你閱讀 361評論 1 2
  • 臺風(fēng)前夕的清晨特別平靜物延,微涼,睡到自然醒的我仅父,看看左邊的孩子叛薯,再看看右邊的愛人,他們都還在安睡笙纤。于是我繼續(xù)...
    Shaoerting閱讀 215評論 0 2