6 tr

 

trgit

這個命令是用來執行替換的,但它只接收標準輸入,即其參數中是沒有文件名這個說法的,只能輸入重定向。bash

0000 0000 blog

若是不帶任何參數,就是簡單的替換it

從上圖看,能夠看到徹底替換了(「abc」被稱爲SET1,「123」被稱爲SET2),並且使用了重定向;SET1和SET2能夠長度不等,若是SET1長,則SET1中過長的部分會替換爲SET2中最後一個字符,相反SET2中過長的會被忽略class

 

0000 0001 -cim

這個是補集,補集的意思是這樣的:對於輸入的字符,若是它在SET1中,就不處理,若是不在,就用SET2的內容替代,並且無論SET2有多長,都是用其最後一個替換,請看示例:重定向

能夠看到甭管SET2有多長,都是用其最後一個字符替代的,並且SET2不能爲空,不然會告訴你有問題。img

0000 0010 -ddi

這個參數執行的是刪除,它只有SET1參數,它把輸入中在SET1中存在的都幹掉了,參見下圖文件

上面的[:xdigit:]表示十六進制中的字符,即0-9ABCDEFabcdef

0000 0011 -s

這個參數表示壓縮,它一樣只有SET1,對於在SET1中的字符,若是在輸入中有連續一樣的,會把這幾個同樣的字符壓縮成一個,見下圖

在上圖中能夠看到,十六進制的中的相應字符被壓縮了,連續的若干個a被壓縮成了一個,其它的也相似。

0000 0100 -t

這個沒的說,它是默認的選項,SET1 SET2都有,執行的就是用SET2替換SET1。

SET1 SET2能夠不加引號,可是建議都加上,另外括號中能夠寫多個條件,如:

echo "Hello World I Love You" |tr "[:lower:] [:upper:]" "0-9"

 這裏有個坑,SET2中不支持SET1中豐富的簡略類型,彷佛只能夠使用[:lower:] [:upper:]

 

 假若對輸入的內容進行替換,同時還要壓縮,則在用-s的同時還要傳入SET2,見下面:

A=1,,2,,,3,,,4,,,5
echo $A | tr -s ',' ' '
相關文章
相關標籤/搜索