shell命令之tr之妙用

2021-09-03 10:36:36 字數 1718 閱讀 8369

tr是用來從標準輸入中通過替換或刪除操作進行字元轉換.tr主要用於刪除檔案中控制字元或進行字元轉換.使用tr時要轉換兩個字串:字串1用於查詢,字串2用於處理各種轉換.tr剛執行時,字串1中的字元被對映到字串2中的字元,然後轉換操作開始.

一般格式:tr -c -d -s ["string1_to_translate_from"] ["string2_to_triampsulata_te_to"]

-c:用字串1中字符集的補集替換此字元,要求字符集為ascii

-d:刪除字串1中所有輸入字元

-s:刪除所有重複出現字串行,只保留乙個,即將重複出現字串壓縮為乙個字串

12.1 字元範圍:

[a-z]:a-z內的字元組成的字串

[a-z]:a-z內的字元組成的字串

[0-9]:數字串

/octal:乙個三位的八進位制數,對應有效的ascii字元

[o*n]:表示字元o重複出現指定次數n,例[o*2]表示匹配[oo]字串

12.2 儲存輸出

要儲存輸出結果,需將之重定向到乙個檔案.例:重定向輸出到檔案results.txt,輸入檔案是cops.txt:

$tr -s "[a-z]"results.txt

12.3 去除重複出現的字元

$more cops.txt

and the cowwwwws went homeeeeeeee or did theyyyy

如果要去除重複字元或將其壓縮在一起,可以使用-s選項,因為都是字母,故使用[a-z]:

$tr -s "[a-z]"12.4 刪除空行

可使用-s來作這項工作.換行的八進位制表示位\012,例:

$more plane.txt

and 0500 399999 2773888 or 093999 3766666 data 39

$tr -s "[\012]"12.5 大小寫轉換

除了刪除控制字元,轉換大小寫是tr最常用的功能.為此需指定即將轉換的小寫字元[a-z]和轉換結果[a-z]

例1:tr從乙個包含大小寫字母的字串中接受輸入:

$echo "may day,may day,going down..."|tr "[a-z]" "[a-z]" may day,may day,going down...

同樣也可以使用字元類[:lower:]和[:upper:]

$echo "may day,may day,going down..."|tr "[:lower:]" "[:upper:]" may day,may day,going down...

$echo "may day,may day,going down..."|tr "[a-z]" "[a-z]" may day,may day,going down...

或者也可以使用字元類[:upper:]和[:lower:]

$echo "may day,may day,goning down..."|tr "[:upper:]" "[:lower:]" may day,may day,going down...

12.7 刪除指定字元

$more diary.txt

monday 10:50

tuesday 15:30

wednesday 15:30

thurday 10:30

friday 09:20

$tr -cs "[a-z][a-z]" "[\012*]"

Shell筆記 命令 tr

tr,主要用於將從標準輸入讀取的資料進行結果集對映 字元壓縮和字元刪除 主要用於刪除檔案中的控制字元或進行字元轉換 之所以說tr是對映而不是替換,是因為兩個結果集替換的時候符號位置是一一對應的。如果set1比set2短,則set2多餘的部分會被忽略,如果set1比set2長,posix認為這是不合理...

Shell筆記 命令 tr

tr,用來從標準輸入中通過替換 刪除進行字元轉換 主要用於刪除檔案中的控制字元或進行字元轉換 使用時,提供兩個字串,串1 用於查詢,串2 用於處理各種轉換 串1 的字元被對映到串2 上,然後轉換開始 主要用途 1.大小寫轉換 2.去除控制字元 3.刪除字元 命令格式 tr c d s str fro...

shell中常用的命令 tr命令

tr命令主要功能是轉化 引數 說明 c c 字串替換,要求字符集為ascii d刪除字元 s刪除所有重複出現字串行,只保留第乙個 即將重複出現字元壓縮為乙個字串 t刪除第一字符集較第二字符集多出的字元 引數 說明 gidit 所有數字 graph 所有可列印字元,不包括空格 lower 所有小寫字元...