tr是個簡單的替換命令,從標准輸入中替換、縮減和/或刪除字符,並將結果寫到標准輸出。
tr常見命令參數
用法:tr [選項]... SET1 [SET2]
從標准輸入中替換、縮減和/或刪除字符,並將結果寫到標准輸出。
-c, -C, --complement 首先補足SET1
-d, --delete 刪除匹配SET1 的內容,並不作替換
-s, --squeeze-repeats 如果匹配於SET1 的字符在輸入序列中存在連續的
重復,在替換時會被統一縮為一個字符的長度
-t, --truncate-set1 先將SET1 的長度截為和SET2 相等
--help 顯示此幫助信息並退出
--version 顯示版本信息並退出
SET 是一組字符串,一般都可按照字面含義理解。解析序列如下:
\NNN 八進制值為NNN 的字符(1 至3 個數位)
\\ 反斜杠
\a 終端鳴響
\b 退格
\f 換頁
\n 換行
\r 回車
\t 水平制表符
\v 垂直制表符
字符1-字符2 從字符1 到字符2 的升序遞增過程中經歷的所有字符
[字符*] 在SET2 中適用,指定字符會被連續復制直到吻合設置1 的長度
[字符*次數] 對字符執行指定次數的復制,若次數以 0 開頭則被視為八進制數
[:alnum:] 所有的字母和數字
[:alpha:] 所有的字母
[:blank:] 所有呈水平排列的空白字符
[:cntrl:] 所有的控制字符
[:digit:] 所有的數字
[:graph:] 所有的可打印字符,不包括空格
[:lower:] 所有的小寫字母
[:print:] 所有的可打印字符,包括空格
[:punct:] 所有的標點字符
[:space:] 所有呈水平或垂直排列的空白字符
[:upper:] 所有的大寫字母
[:xdigit:] 所有的十六進制數
[=字符=] 所有和指定字符相等的字符
常用的命令展示
不換行顯示
seq 9 | tr "\n" "|"
刪除多余的空行
cat last.txt | tr -s '\n'

刪除指定的字符
cat last.txt | tr -d '[0-9].'

大小寫轉換
cat last.txt | tr '[a-z]' '[A-Z]'

字符串去重復
cat last.txt | tr -s '[a-zA-Z]'

不滿足第一列的時候用第二列替代
cat last.txt | tr -c '[a-z][0-9]' '+'

替換字母權限為數字
tr rwx- 4321
ll h.txt | tr rwx- 4321
ll /etc/hosts | tr rwx- 4210| awk -F "" '{print $1+$2+$3 $4+$5+$6 $7+$8+$9}'
ll /etc/hosts | cut -c 2-10 | tr rwx- 4210 |awk -F "" '{print $1+$2+$3 $4+$5+$6 $7+$8+$9}'


