1、大小寫轉換
echo "hello world" | tr "[a-z]" "[A-Z]"
輸出HELLO WORLD
也可以用字符類[:lower:] [:upper:]
echo "hello world" | tr [:lower:] [:upper:]
2、tr -c sourcelist replacelist
把輸入字符串中所有不在sourcelist中的字符替換為replacelist
常與-s一起使用
-s 濃縮重復的字符。如果標準輸入中連續重復出現source-char-list里所列的字符,則將其濃縮成一個。或者將其濃縮成replace-char-list中的字符。
-d: 刪除source-char-list中所定義的字符。
關于tr
t r用來從標準輸入中通過替換或刪除操作進行字符轉換。t r主要用于刪除文件中控制字符或進行字符轉換。使用t r時要轉換兩個字符串:字符串1用于查詢,字符串2用于處理各種轉換。
t r剛執行時,字符串1中的字符被映射到字符串2中的字符,然后轉換操作開始。
下面講述:
" 大小寫轉換。
" 去除控制字符。
" 刪除空行。
帶有最常用選項的t r命令格式為:
- t r - c - d - s [ " s t
r i n g 1 _ t o _ t r a n s l a t e _ f r o m " ] [ " s t r i n g 2 _ t
o _ t r a n s l a t e _ t o " ] i n p u t _f i l e
復制代碼
這里:
-c 用字符串1中字符集的補集替換此字符集,要求字符集為A S C I I。
-d 刪除字符串1中所有輸入字符。
-s 刪除所有重復出現字符序列,只保留第一個;即將重復出現字符串壓縮為一個字符串。
I n p u t - f i l e是轉換文件名。雖然可以使用其他格式輸入,但這種格式最常用。
字符范圍
使用t r時,可以指定字符串列表或范圍作為形成字符串的
模式。這看起來很像正則表達式,但實際上不是。指定字符串1或字符串2的內容時,只能使用單字符或字符串范圍或列表。
[a-z] a-z內的字符組成的字符串。
[A-Z] A-Z內的字符組成的字符串。
[0-9] 數字串。
/octal 一個三位的八進制數,對應有效的A S C I I字符。
[O*n] 表示字符O重復出現指定次數n。因此[ O * 2 ]匹配O O的字符串。
大部分t r變種支持字符類和速記控制字符。
字符類格式為[:c l a s s ],包含數字、希臘字母、空行、小寫、大寫、c n t r l鍵、空格、點記符、圖形等等。
下表包括最常用的控制字符的速記方式及三位八進制引用方式。
當用一個單字符替換一個字符串或字符范圍時,注意字符并不放在方括號里( [ ])。一些
系統也可以使用方括號,例如可以寫成[“\ 0 1 2”]或“\ 0 1 2”,t r也允許不加引號,因此命令中看到單引號而不是雙引號時也不要感到奇怪。
像大多數系統工具一樣, t r也受特定字符的影響。因此如果要匹配這些字符,需使用反斜線屏蔽其特殊含義。例如,用\ {指定花括號左邊可以屏蔽其特殊含義。
tr中特定控制字符的不同表達方式