linux中字元轉換命令 tr的用法

2021-12-29 20:04:18 字數 3202 閱讀 3000

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...