1. 程式人生 > >Linux面試指令---tr指令

Linux面試指令---tr指令

tr 命令

       tr 命令常被用來更改字元。我們可以把它看作是一種基於字元的查詢和替換操作。換字是一種把字元從一個字母轉換為另一個字母的過程。tr 從標準輸入中替換、縮減和/或刪除字元,並將結果寫到標準輸出。tr 只能通過 stdin(標準輸入),而無法通過命令列引數來接受輸入。tr 是 translate(轉換)的縮寫。

(1)命令格式

         tr [選項] SET1 SET2

        將來自 stdin 的輸入字元從 SET1 對映到 SET2,並將其輸出寫入 stdout(標準輸出)。SET1 和 SET2 是字元類或字符集。如果兩個字符集的長度不相等,那麼 SET2 會不斷重複其最後一個字元,直到長度與 SET1 相同。如果 SET2 的長度大於 SET1,那麼在 SET2 中超出 SET1 的那部分字元則全部被忽略。

(2)常用引數

引數 描述
-d 刪除匹配 SET1 的內容,並不作替換

(3)常用範例

         例一:將輸入的字元大寫轉換為小寫,可以使用如下命令:

echo 'THIS IS SHIYANLOU!' | tr 'A-Z' 'a-z'

         例二:將輸入的字元中的數字刪除,可以使用如下命令:

echo 'THIS 123 IS S1HIY5ANLOU!' | tr -d '0-9' 

        例三:tr 命令的一個有趣的用法是執行 ROT13 文字編碼。ROT13 是一款微不足道的基於一種簡易的替換暗碼的加密型別。把 ROT13 稱為“加密”是大方的,“文字模糊處理”更準確些。有時候它被用來隱藏文字中潛在的攻擊內容。這個方法就是簡單地把每個字元在字母表中向前移動 13 位。因為移動的位數是可能的 26 個字元的一半,所以對文字再次執行這個演算法,就恢復到了它最初的形式。可以使用如下命令:

#加密
echo 'shiyanlou' |  tr  'a-zA-Z'  'n-za-mN-ZA-M' 
fuvlnaybh
#解密
echo 'fuvlnaybh' | tr  'a-zA-Z'  'n-za-mN-ZA-M'
shiyanlou