Unix中tr命令“字符”處理的實用例子

tr是Unix系統非常實用的工具,其實用tr做到的事情,幾乎都可用sed做到,你可以把tr當作是實現sed許多基本功能的sed“簡體”。我認爲tr是簡單的“字符”處理工具,而sed是功能非常強大的“字符串”處理工具。
 
【注意】tr是單個字符處理工具,而不是字符串處理工具!
 
我自己用過比較實用的例子如下:
 
1、將文件file中出現的"abc"替換爲"xyz"
 
# cat file | tr "abc" "xyz" > new_file
 
【注意】這裏,凡是在file中出現的"a"字母,都替換成"x"字母,"b"字母替換爲"y"字母,"c"字母替換爲"z"字母。而不是將字符串"abc"替換爲字符串"xyz"。
 
2、使用tr命令“統一”字母大小寫
(小寫 --> 大寫)
# cat file | tr [a-z] [A-Z] > new_file
(大寫 --> 小寫)
# cat file | tr [A-Z] [a-z] > new_file
 
3、把文件中的數字0-9替換爲a-j
 
# cat file | tr [0-9] [a-j] > new_file

4、刪除文件file中出現的"Snail"字符
 
# cat file | tr -d "Snail" > new_file
 
【注意】這裏,凡是在file文件中出現的'S','n','a','i','l'字符都會被刪除!而不是緊緊刪除出現的"Snail”字符串。
 
5、刪除文件file中出現的換行'\n'、製表'\t'字符
 
# cat file | tr -d "\n\t" > new_file
 
不可見字符都得用轉義字符來表示的,這個都是統一的。
 
6、刪除“連續着的”重複字母,只保留第一個
 
# cat file | tr -s [a-zA-Z] > new_file
 
7、刪除空行
 
# cat file | tr -s "\n" > new_file
 
8、刪除Windows文件“造成”的'^M'字符
 
# cat file | tr -d "\r" > new_file
或者
# cat file | tr -s "\r" "\n" > new_file
 
【注意】這裏-s後面是兩個參數"\r"和"\n",用後者替換前者
 
9、用空格符\040替換製表符\011
 
# cat file | tr -s "\011" "\040" > new_file
 
10、把路徑變量中的冒號":",替換成換行符"\n"
 
# echo $PATH | tr -s ":" "\n"
 
這樣看到的路徑變量是不是更清晰。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章