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 ',' ' '