Linux tr命令詳解


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" "|"

image

刪除多余的空行

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

 

image

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM