日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux下的tr编辑器命令详解

發(fā)布時間:2025/3/18 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下的tr编辑器命令详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?通過使用 tr,您可以非常容易地實現(xiàn) sed 的許多最基本功能。您可以將 tr 看作為 sed 的(極其)簡化的變體:它可以用一個字符來替換另一個字符,或者可以完全除去一些字符。您也可以用它來除去重復字符。這就是所有 tr 所能夠做的。?

命令格式

tr [option] ["string1"] ["string2"] < file??
常用的選項有:
默認選項。就是沒有任何選項的時候,tr默認為替換操作,就是將string1在文件中出現(xiàn)的字符替換為string2中的字符,這里要注意的是替換關系。
-c選項,用string1中字符的補集替換string1,這里的字符集為ASCII。
-d選項,刪除文件中所有在string1中出現(xiàn)的字符。
-s選項,刪除文件中重復并且在string1中出現(xiàn)的字符,只保留一個。
-c選項在使用時,只是將string1替換為現(xiàn)在的補集,如在使用

[root@localhost ~]# echo "hello world,root,2012" | tr -c "0-9" "*" *****************2012*[root@localhost ~]# echo "hello world,root,2012" | tr "0-9" "*" hello world,root,**** [root@localhost ~]#

可以看出,我們使用0-9,添加-c選項后,會把0-9替換為其補集,這時補集自然不包含0-9,而包含很多其它的字符,接下來就把所有的其它字符都替換成*號,但不包含數(shù)字。

字符串的取值范圍
指定string或string2的內容時,只能使用單字符或字符串范圍或列表。
[a-z] a-z內的字符組成的字符串。
[A-Z] A-Z內的字符組成的字符串。
[0-9] 數(shù)字串。
\octal 一個三位的八進制數(shù),對應有效的ASCII字符。
[O*n] 表示字符O重復出現(xiàn)指定次數(shù)n。因此[O*2]匹配OO的字符串。

控制字符的不同表達方式

速記符?含義?八進制方式
\a?Ctrl-G? 鈴聲\007
\b?Ctrl-H?退格符\010
\f?Ctrl-L? 走行換頁\014
\n?Ctrl-J? 新行\(zhòng)012
\r?Ctrl-M?回車\015
\t ?Ctrl-I? tab鍵\011
\v?Ctrl-X?\030 注意這些控制字符,如果想在linux下輸入,如我們可能需要輸入^M這種字符,只需ctrl+V+M同時按下即可。

字符替換

[root@localhost ~]# echo "hello world" | tr "a-z" "A-Z" HELLO WORLD [root@localhost ~]# echo "hello world" | tr "a-l" "A-Z" HELLo worLD [root@localhost ~]# 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。

如果我們想要進行大小寫轉換,可以按下面的輸入:
tr "a-z" "A-Z" < inputfile??

去除重復字符
這個時候,所用的選項是-s選項,如:

[root@localhost ~]# echo "hello world,root" | tr -s "ao" hello world,rot [root@localhost ~]# echo "hello world,root" | tr -s "lo" helo world,rot [root@localhost ~]# echo "hello world,root" | tr -s "a-z" helo world,rot [root@localhost ~]# 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字符集中的字符去掉,這里沒有。


如果我們想要去掉空行,可以這樣操作:
tr -s "\n" < inputfile 或者 tr -s "\012" <inputfile // 這兩個是一樣的。??
就是將重復的換行符去掉,只留一個。

刪除字符
-d選項和-s選項類似,只不過-d選項會刪除所有出現(xiàn)的字符。

[root@localhost ~]# echo "hello world,root" | tr -d "a-h" llo worl,root [root@localhost ~]# echo "hello world,root,2012" | tr -d "a-z" ,,2012 [root@localhost ~]# echo "hello world,root,2012" | tr -d "0-9" hello world,root, 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Linux下的tr编辑器命令详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。