tr

linux命令

TR是linux命令常用命令,其全稱“Text Replacer”,該命令用於進行文本字元替換。

基本介紹


標準輸替換刪除操符轉換。 刪除件控制符符轉換。
注: 符替換、縮減刪除,替換字元串
選項令式:
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] file
這裡:
-c 用字元串1中字符集的補集替換此字符集,要求字符集為ASCII。
-d 刪除字元串1中所有輸入字元。
-s 刪除所有重複出現字元序列,只保留第一個;即將重複出現字元串壓縮為一個字元串。
file是轉換文件名。雖然可以使用其他格式輸入,但這種格式最常用。
字元範圍
指定字元串1或字元串2的內容時,只能使用單字元或字元串範圍或列表。
[a-z] a-z內的字元組成的字元串。
[A-Z] A-Z內的字元組成的字元串。
[0-9] 數字串。
\octal 一個三位的八進位數,對應有效的ASCII字元。
[O*n] 表示字元O重複出現指定次數n。因此[O*2]匹配OO的字元串。
tr中特定控制字元的不同表達方式
速記符含義八進位方式
\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)去除oops.txt裡面的重複的小寫字元( # -s會保留第一個字元)
[root@localhost ~]# cat oops.txt
ddddfffabccccc
lerrrrdddd
[root@localhost ~]# tr -s "a-z" < oops.txt > result.txt
[root@localhost ~]# cat result.txt
dfabc
lerd
(2)刪除空行(除了第一行外)
[root@localhost ~]# cat oops.txt
ddddfffabccccc
lerrrrdddd
[root@localhost ~]# tr -s "\012" < oops.txt > result.txt
[root@localhost ~]# cat result.txt
ddddfffabccccc
lerrrrdddd
(3)刪除所有行結束符
[root@localhost ~]# cat oops.txt > result.txt
[root@localhost ~]# cat result.txt
ddddfffabccccclerrrrdddd
(4)小寫到大寫
[root@localhost ~]# cat oops.txt
ddddfffabccccc
errrrdddd
[root@localhost ~]# cat oops.txt | tr "a-z" "A-Z" > result.txt
[root@localhost ~]# cat result.txt
DDDDFFFABCCCCC
ERRRRDDDD
(5)刪除指定的字元(# -d 與 -s 不同,-d會全部刪除,但-s會保留第一個)
[root@localhost ~]# cat oops.txt
ddddfffabccccc
errrrdddd
[root@localhost ~]# cat oops.txt | tr -d "bd" > result.txt
[root@localhost ~]# cat result.txt
fffaccccc
errrr
[root@localhost ~]# cat oops.txt | tr -s "bd" > result.txt
[root@localhost ~]# cat result.txt
dfffabccccc
errrrd
(6)替代指定的字元(#一對一的替代)
[root@localhost ~]# cat oops.txt
ddddfffabccccc
errrrdddd
[root@localhost ~]# cat oops.txt | tr "bd" "BD" > result.txt
[root@localhost ~]# cat result.txt
DDDDfffaBccccc
errrrDDDD