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

歡迎訪問 生活随笔!

生活随笔

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

linux

Linux命令学习手册-tr命令 2015-07-26 20:35 9人阅读 评论(0) 收藏...

發布時間:2023/11/30 linux 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux命令学习手册-tr命令 2015-07-26 20:35 9人阅读 评论(0) 收藏... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

tr [OPTION]... SET1 [SET2]?


[功能]?

轉換或者刪除字符。?


[描述]?

tr指令從標準輸入設備讀取數據,經過字符串轉譯后,輸出到標準輸出設備。?

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

tr用來從標準輸入中通過替換或刪除操作進行字符轉換。tr主要用于刪除文件中控制字符或進行字符轉換。使用tr時要轉換兩個字符串:字符串1用于查詢,字符串2用于處理各種轉換。tr剛執行時,字符串1中的字符被映射到字符串2中的字符,然后轉換操作開始。?

參數:?

??-c或--complerment?? 取代所有不屬于第一字符集的字符。?

??-d或--delete?? 刪除所有屬于第一字符集的字符。?

??-s或--squeeze-repeats?? 把連續重復的字符以單獨一個字符表示。?

??-t或--truncate-set1?? 這個比較難理解,man上面的解釋是:first truncate SET1 to length of SET2,經過我的實踐發現,將set1的字符依次替換成set2中的字符,如果set1中的字符數目超過set2,那么set1多出的字符忽略。如果沒有-t,那么多出的字符都替換成set2的最后一個字符。?

??--help?? 在線幫助。?

??--version?? 顯示版本信息。?


字符范圍?

指定字符串1或字符串2的內容時,只能使用單字符或字符串范圍或列表。?

[a-z] a-z內的字符組成的字符串。?

[A-Z] A-Z內的字符組成的字符串。?

[0-9] 數字串。?

\octal 一個三位的八進制數,對應有效的ASCII字符。?

[O*n] 表示字符O重復出現指定次數n。因此[O*2]匹配OO的字符串。?

tr中特定控制字符的不同表達方式?

速記符含義八進制方式?

\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?


[舉例]?

*壓縮文件test內容中重復的字符為一個:?

$tr -s [a-z]<test?< font="" style="word-wrap: break-word;">

這樣,會把文件中每一行的,Set1([a-z])字符串中的重復字符壓縮為一個,并把處理的結果打印到標準輸出,原來的文件不變。?

注意這里,set1集合(也就是第一個參數[a-z])中指定的是字符集合,而不是字符串,所以這里做的是把單個字符的重復給壓縮為一個,而不是字符串的重復。?

例如test有一行是tttt.tgz,那么會變成t.tgz,但是hellohellohello會變成helohelohelo.?


*去掉文件中多余的空行:?

$tr -s "[\012]" < test?

或$tr -s ["\n"]<test?< font="" style="word-wrap: break-word;">

這里,假設原來文件test的內容是:?

111?

222?


333?



444?

運行之后,標準輸出:?

111?

222?

333?

444?

而原來文件的內容不會改變。?


*刪除文件中的^M,并代之以換行:?

$tr -s "[\015]" "[\n]"<test?< font="" style="word-wrap: break-word;">

或$tr -s "[\r]" "[\n]<test?< font="" style="word-wrap: break-word;">

一般來說,windows上面編輯的文件拿到linux上面來沒行的結尾可以會有這樣的符號,實際上直接cat也看不出^M符號。?


*替換文件test中所有冒號,代之以逗號:?

$tr -s "[:]" "[,]"<test?< font="" style="word-wrap: break-word;">

或$tr -s ":" ","<test?< font="" style="word-wrap: break-word;">


*顯示$PATH變量將":"變成回車:?

echo $PATH | tr ":" "\n"?

這里,用 echo $PATH 或者 echo $LD_LIBRARY_PATH 等類似的命令來顯示路徑信息的話,我們看到的將會是一大堆用冒號連接在一起的路徑, tr命令可以把這些冒號轉換為回車,這樣,這些路徑就具有很好的可讀性了.?


*以上命令在vi中進行處理:?

1,$!tr -s ":" ","?

這樣,會直接修改vi編輯的文件,可以在vi內使用所有這些命令!只要記住:在tr命令前要加上您希望處理的行范圍和感嘆號 (!),如 1,$!tr -d '\t'(美元符號表示最后一行)。?


*替換第一個參數字符集之外的字符為指定字符:?

tr -c [boy] "k"<trtest?< font="" style="word-wrap: break-word;">

輸入之后,輸出如下:?

kkkkokboykkookk?

這里,會把屬于第一個參數的字符集中的字符之外的所有,都替換成第二個參數對應的字符。第二個參數必須是單個字符,如果是多個字符,則取最后一個,例如"ka"等價于'a'.?

使用"cat trTest"查看文件的內容如下:?

hello?

boy?

good?


*刪除set1字符集指定的字符:?

$tr -d bld<trtest?< font="" style="word-wrap: break-word;">

或$tr -d [bld]<trtest?< font="" style="word-wrap: break-word;">

輸入之后,輸出如下:?

heo?

oy?

goo?

這樣,會刪除trTest文件中的所有"bld"三個字符。這里使用cat查看trTest文件內容如下:?

$cat trTest?

hello?

boy?

good?


*把文件中的小寫字符轉換成大寫的:?

$tr a-z A-Z<testtr?< font="" style="word-wrap: break-word;">

或$tr [a-z] [A-z]<testtr?< font="" style="word-wrap: break-word;">

輸入之后,輸出如下:?

111?

222?

HELLO?

這里,testTr內容如下:?

111?

222?

hello?


*使用-t替換字符,set1超出set2的部分忽略:?

$tr -t hld boy < trTest?

輸入之后,輸出如下:?

beooo?

boy?

gooy?

這樣,會依次把h,l,d替換成b,o,y如果是hldg那么多出來的字符g忽略,如果沒有-t那么多出來的所有字符被替換成boy的最后一個字符y.?

這里trTest文件的內容:?

$cat trTest?

hello?

boy?

good?


原文:http://blog.chinaunix.net/uid-9525959-id-2001634.html

轉載于:https://www.cnblogs.com/zclzqbx/p/4687041.html

總結

以上是生活随笔為你收集整理的Linux命令学习手册-tr命令 2015-07-26 20:35 9人阅读 评论(0) 收藏...的全部內容,希望文章能夠幫你解決所遇到的問題。

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