Linux面試指令---tr指令
阿新 • • 發佈:2018-12-17
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