linux中字元轉換命令-tr的用法
可以把tr看作為乙個簡化的sed工具,tr表示為:translate。
tr命令主要用於實現以下兩個功能
替換操作的字串轉換。
刪除操作的字串轉換,可以很容易的刪除一些控制字元或者是空行。
tr命令能夠實現的功能,都能夠用sed命令來實現。但就具體的替換功能來說,tr用起來更容易,也比較簡單。
www.2cto.com
一,命令格式
[html]
tr [option] ["string1"] ["string2"] < file
常用的選項有:
預設選項。就是沒有任何選項的時候,tr預設為替換操作,就是將string1在檔案**現的字元替換為string2中的字元,這裡要注意的是替換關係。
-c選項,用string1中字元的補集替換string1,這裡的字符集為ascii。
-d選項,刪除檔案中所有在string1**現的字元。
-s選項,刪除檔案中重複並且在string1**現的字元,只保留乙個。
-c選項在使用時,只是將string1替換為現在的補集,如在使用
[html]
[root@localhost client]# echo "hello world,root,2012" | tr -c "0-9" "*"
*****************2012* www.2cto.com
可以看出,我們使用0-9,新增-c選項後,會把0-9替換為其補集,這時補集自然不包含0-9,而包含很多其它的字元,接下來就把所有的其它字元都替換成*號,但不包含數字。
如果只需要替換數字的話:
[html]
[root@localhost client]# echo "hello world,root,2012" | tr "0-9" "*"
hello world,root,****
二,字串的取值範圍
指定string或string2的內容時,只能使用單字元或字串範圍或列表。
[a-z] a-z內的字元組成的字串。
[a-z] a-z內的字元組成的字串。
[0-9] 數字串。
\octal 乙個三位的八進位制數,對應有效的ascii字元。
[o*n] 表示字元o重複出現指定次數n。因此[o*2]匹配oo的字串。
三,控制字元的不同表達方式
速記符 含義 八進位制方式
\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 注意這些控制字元,如果想在linux下輸入,如我們可能需要輸入^m這種字元,只需ctrl+v+m同時按下即可。
www.2cto.com
四,字元替換
這是tr的預設操作,先看下面的命令和輸出
[html]
[root@localhost client]# echo "hello world" | tr "a-z" "a-z"
hello world
[root@localhost client]# echo "hello world" | tr "a-l" "a-z"
hello world
[root@localhost client]# echo "hello world" | tr "a-z" "a-h"
hehhh hhhhd
第一行輸出就是將小寫換成大寫。
第二行輸出將小寫中的a-l分別換成a-l,而將小寫中的l以後的字元都不替換。
第三行輸出將小寫中的a-h換成a-h,而h以後的字元都換成h,因為後者的替換空間沒有前面的字元空間大,所以就重複後面的h,相當於後面的字元是a-hhh......hhhhh。
如果我們想要進行大小寫轉換,可以按下面的輸入:
[html]
tr "a-z" "a-z" < inputfile
五,去除重複字元
這個時候,所用的選項是-s選項,如:
[html]
[root@localhost client]# echo "hello world,root" | tr -s "ao"
hello world,rot www.2cto.com
[root@localhost client]# echo "hello world,root" | tr -s "lo"
helo world,rot
[root@localhost client]# echo "hello world,root" | tr -s "a-z"
helo world,rot
[root@localhost client]# echo "hello world,root" | tr -s "0-9"
hello world,root
第一行表示將輸入字串中的包含在"ao"字符集中的重複字元去掉,只留乙個。因為"hello world,root",只有o滿足條件,所以將root變成rot,把中間的兩個o變成乙個。
第二行將hello和root兩個字元都壓縮了。
第三行表示將a-z中的除復字元都去掉。
第三行表示將字串中的重複的且重複字元在0-9字符集中的字元去掉,這裡沒有。
如果我們想要去掉空行,可以這樣操作:
[html]
tr -s "\n" < inputfile 或者 tr -s "\012"
就是將重複的換行符去掉,只留乙個。
www.2cto.com
六,刪除字元
-d選項和-s選項類似,只不過-d選項會刪除所有出現的字元。
[html]
[root@localhost client]# echo "hello world,root" | tr -d "a-h"
llo worl,root
[root@localhost client]# echo "hello world,root,2012" | tr -d "a-z"
,,2012
[root@localhost client]# echo "hello world,root,2012" | tr -d "0-9"
hello world,root,
Linux 字元轉換命令tr
tr traslate的縮寫 可以用來刪除一段資訊當中的文字,或者是進行文字資訊的替換!root www tr ds set1 選項與引數 d 刪除資訊當中的 set1 這個字串 s 取代掉重複的字元!範例一 將 last 輸出的資訊中,所有的小寫變成大寫字元 root www last tr a ...
linux中字元轉換命令 tr的用法
可以把tr看作為乙個簡化的sed工具,tr表示為 translate。tr命令主要用於實現以下兩個功能 替換操作的字串轉換。刪除操作的字串轉換,可以很容易的刪除一些控制字元或者是空行。tr命令能夠實現的功能,都能夠用sed命令來實現。但就具體的替換功能來說,tr用起來更容易,也比較簡單。一,命令格式...
Linux命令學習 tr 轉換字元
語法 tr options source char list replace char list 用途 轉換字元。例如,將大寫字元轉換為小寫。選項可讓你指定所要刪除的字元,以及將一串重複出現的字元濃縮成乙個。常用選項 c 取source char list的反義 d 刪除source char li...