国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux-tr命令

2024-06-28 13:20:46
字體:
來源:轉載
供稿:網友
linux-tr命令 Posted on 2015-05-06 16:38 寒星月冷 閱讀(...) 評論(...) 編輯 收藏

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

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

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

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

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

$tr -s "[/012]" < test

或$tr -s ["/n"] <test

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

111

222

333

444

運行之后,標準輸出:

111

222

333

444

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

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

$tr -s "[/015]" "[/n]" <test

或$tr -s "[/r]" "[/n] <test

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

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

$tr -s "[:]" "[,]" <test

或$tr -s ":" "," <test

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

echo $PATH | tr ":" "/n"

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

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

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

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

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

tr -c [boy] "k" <trTest

輸入之后,輸出如下:

kkkkokboykkookk

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

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

hello

boy

good

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

$tr -d bld <trTest

或$tr -d [bld] <trTest

輸入之后,輸出如下:

heo

oy

goo

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

$cat trTest

hello

boy

good

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

$tr a-z A-Z <testTr

或$tr [a-z] [A-z] <testTr

輸入之后,輸出如下:

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒲城县| 浑源县| 洪泽县| 巢湖市| 镇雄县| 耒阳市| 普兰店市| 南宁市| 旌德县| 高雄市| 揭阳市| 吉隆县| 买车| 天气| 都匀市| 泽库县| 迭部县| 扶余县| 平邑县| 淮安市| 阿鲁科尔沁旗| 雅江县| 临城县| 盐源县| 崇礼县| 巴中市| 安图县| 隆昌县| 庄河市| 徐汇区| 汉源县| 彭山县| 东乡族自治县| 华宁县| 罗源县| 芮城县| 鹤峰县| 葫芦岛市| 宜兴市| 荆州市| 镇康县|