Linux tr命令詳解

tr是個簡單的替換命令,從標準輸入中替換、縮減和/或刪除字符,並將結果寫到標準輸出。java

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:]    全部的十六進制數
  [=字符=]      全部和指定字符相等的字符

經常使用的命令展現

不換行顯示git

seq 9 | tr "\n" "|"

image

刪除多餘的空行spa

cat last.txt | tr -s '\n'

刪除指定的字符3d

cat last.txt | tr -d '[0-9].'

大小寫轉換blog

cat last.txt | tr '[a-z]'  '[A-Z]'

字符串去重複字符串

cat last.txt | tr -s '[a-zA-Z]'

不知足第一列的時候用第二列替代get

cat last.txt | tr -c '[a-z][0-9]' '+'

替換字母權限爲數字it

 

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

相關文章
相關標籤/搜索