tr命令詳解


作用:

通過使用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"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM