tr(translate)命令詳解

trtranslate)命令詳解

功能:轉換字符。如將大寫字符轉換成小寫。

語法tr 選項  [字符串1] [字符串2]

tr的行爲如同過濾器,從標準輸入讀取字符,再將結果寫到標準輸出。任何輸入字符只要出現在字符串1列表中,就會置換成字符串2裏相應的字符

注意:tr命令不接受指定的文件參數,而只是對標準輸入進行轉換

常用選項

-c 用字符串1中字符集的補集替換此字符集,要求字符集爲ASCII

-d 從標準輸入刪除源字符裏所列的字符,而不是轉換它們

-s 濃縮重複的字符。如果標準輸入中連續重複出現源字符裏所列的字符,將其濃縮成一個。

常用的字符範圍

指定字符串1或字符串2的內容時,只能使用單字符或字符串範圍或列表。

[a-z] a-z內的字符組成的字符串。

[A-Z] A-Z內的字符組成的字符串。

[0-9] 數字串。

\octal 一個三位的八進制數,對應有效的ASCII字符。

[A*n] 表示字符A重複出現指定次數n。因此[A*3]匹配AAA的字符串

[:alnum:] :所有字母字符與數字

[:alpha:] :所有字母字符

[:blank:] :所有水平空格

[:cntrl:] :所有控制字符

[:digit:] :所有數字

[:graph:] :所有可打印的字符(不包含空格符)

[:lower:] :所有小寫字母

[:print:] :所有可打印的字符(包含空格符)

[:punct:] :所有標點字符

[:space:] :所有水平與垂直空格符

[:upper:] :所有大寫字母

[:xdigit:] :所有 16 進位制的數字。

特定控制字符的不同表達方式

速記符

含義

八進制方式

備註

\a

Ctrl-G鈴聲

007

 

\b

Ctrl-H退格符

010

 

\f

Ctrl-L 走行換頁

014

 

\n

Ctrl-J 新行

012

 

\r

Ctrl-M 回車

015

 

\t

Ctrl-I  tab

011

 

\v

Ctrl-X

030

 

舉例說明

1)刪除字符串

tr  -d   ‘\r ’ < test.txt  | sort > test-new.txt

刪除test.txt文件中的回車符,排序後將結果輸出到test-new.txt文件中

[root@server ~]# echo xiaoguang | tr -d "a"  #輸出xiogung

[root@server ~]# echo xiaoguang | tr -d "xiao"  #輸出gung

注意tr是將字符串1的各個字符串單獨處理的

2)刪除重複字符串

echo aabbccccddddd | tr -s '[a-z]'  #輸出abcd
3)替換大小寫

現有有個文件word.txt,內容如下:

[root@server ~]# cat word.txt  

abCDEf

現在使用trword.txt中的小寫都變成大寫

[root@server ~]# tr '[a-z]' '[A-Z]' < word.txt

ABCDEF
4)刪除空行

[root@server tr]# tr -s '\n' < test.txt

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章