作用:
通過使用tr,可以非常容易的實現sed的許多基本功能。它可以用一個字符來替換另一個字符,或者可以完全除去一些字符。你也可以用它來去除一些重復字符。
命令格式:
tr -c -d -s ["string1_to_translate_from"]["string2_to_translate_to"] < input-file
這里:
-c 用字符串1中字符集的補集替換此字符集,要求字符集為ASCII。
-d 刪除字符串1中所有輸入字符。
-s 刪除所有重復出現字符序列,只保留第一個;即將重復出現字符串壓縮為一個字符串。
input-file是要轉換的文件名。雖然可以使用其他格式輸入,但這種格式最常用。
字符范圍:
指定字符串1或字符串2的內容時,只能使用單字符或字符串范圍或列表。
[a-z] a-z內的字符組成的字符串。
[A-Z] A-Z內的字符組成的字符串。
[0-9] 數字串。
\octal 一個三位的八進制數,對應有效的ASCII字符。
[O*n] 表示字符O重復出現指定次數n。因此[O*2]匹配OO的字符串。
應用實例:
1.將文件file中出現的"abc"替換為"xyz"
1 cat file|tr "abc" "xyz">new_file
2.用tr命令,轉換大小寫
1 # 小寫轉大寫 2 tr [a-z] [A-Z] <filename 3 #大寫轉小寫 4 tr [A-Z] [a-z] <filename
3.把文件中的數字0-9替換為a-j
1 tr [0-9] [a-j] <filename
4.刪除文件中出現的"Snail"字符
1 cat filename|tr -d "Snail">new_file
【注意】這里,凡是在file文件中出現的'S','n','a','i','l'字符都會被刪除!而不是緊緊刪除出現的"Snail”字符串。
5.刪除文件file中出現的換行,制表符
1 cat file | tr -d "\n\t">new_file
6.刪除“連續”的重復字母,只保留第一個
1 cat file | tr -s [a-zA-Z]>new_file
7.刪除空行
1 cat file | tr -s "\n" > new_file
這里思考一下,為什么用-s,理解了還是挺容易想明白的
8.刪除Windows文件“造成”的'^M'字符
1 cat file | tr -d "\r" >new_file 2 #或者可以 3 cat file |tr -s "\r" "\n">new_file
下面這個-s的解法也挺有意思,動動腦筋,理解下
9.用空格\040替換成制表符\011
1 cat file | tr -s "\011" "\040">new_file
10.把路徑變量中的冒號":",替換成換行符"\n"
1 echo $PATH | tr ":" "\n"