tr 用于替換或者刪除字符串。
The tr utility copies the standard input to the standard output with substitution
or deletion of selected characters.
語(yǔ)法
tr [-cdst] [第一字符集][第二字符集]
參數(shù)說(shuō)明
- -c, --complement:反選設(shè)定字符。也就是符合 SET1 的部份不做處理,不符合的剩余部份才進(jìn)行轉(zhuǎn)換
- -d, --delete:刪除指令字符
- -s, --squeeze-repeats:縮減連續(xù)重復(fù)的字符成指定的單個(gè)字符
- -t, --truncate-set1:削減 SET1 指定范圍,使之與 SET2 設(shè)定長(zhǎng)度相等
- 字符集1:指定要轉(zhuǎn)換或刪除的原字符集。當(dāng)執(zhí)行轉(zhuǎn)換操作時(shí),必須使用參數(shù)“字符集2”指定轉(zhuǎn)換的目標(biāo)字符集。但執(zhí)行刪除操作時(shí),不需要參數(shù)“字符集2”;
- 字符集2:指定要轉(zhuǎn)換成的目標(biāo)字符集。
字符類(lèi)
[:alnum:]:字母和數(shù)字
[:alpha:]:字母
[:cntrl:]:控制(非打?。┳址?[:digit:]:數(shù)字
[:graph:]:圖形字符
[:lower:]:小寫(xiě)字母
[:print:]:可打印字符
[:punct:]:標(biāo)點(diǎn)符號(hào)
[:space:]:空白字符
[:upper:]:大寫(xiě)字母
[:xdigit:]:十六進(jìn)制字符
實(shí)例
- 將輸入字符由小寫(xiě)轉(zhuǎn)換大寫(xiě)
$ echo "first blood" | tr 'a-z' 'A-Z'
FIRST BLOOD
或者使用字符集 [:lower:] [:upper:] 來(lái)轉(zhuǎn)換大小寫(xiě)
$ echo "first blood" | tr [:lower:] [:upper:]
FIRST BLOOD
- 刪除
刪除所有的數(shù)字:
$ echo "first 123 blood 456" | tr -d "0-9"
first blood
使用字符集 [:digit:] 刪除所有的數(shù)字
$ echo "first 123 blood 456" | tr -d [:digit:]
first blood
- 補(bǔ)集
把除數(shù)字,空格,換行符之外的所有字符串,都替換成 & :
$ echo "first 123 blood 456" | tr -c '0-9 \n' '&'
&&&&& 123 &&&&& 456
刪除除數(shù)字,空格,換行符之外的所有字符串:
echo "first 123 blood 456" | tr -dc '0-9 \n'
123 456
- 壓縮
壓縮重復(fù)的字符串 s 和 數(shù)字 2 。
$ echo "he'sssss age issssss 12222222222." | tr -s 's2'
he's age is 12.