tr命令

tr命令用於從標準輸出中轉換、壓縮和/或刪除字符。
語法:

tr [OPTION]... SET1 [SET2]
-c, -C, –complement 取字符集的補集,需要配合其他選項,不能單獨使用。
-d, –delete 刪除SET1中的字符而不是轉換
-s, –squeeze-repeats 刪除所有重複出現字符序列,只保留一個;即將重複出現字符串壓縮爲一個字符串。
-t, –truncate-set1 將SET1對應位置的字符轉換爲SET2集中對應位置的字符

支持字符替換的字符集:

  \NNN            八進制值字符NNN(1到3個八進制數字)
  \\              \
  \a              鈴聲符
  \b              空格
  \f              換頁符
  \n              換行符
  \r              回車符
  \t              水平製表符
  \v              垂直製表符
    CHAR1-CHAR2 從CHAR1到CHAR2的所有字符按照ASCII字符的順序
    [[:digit:]] 表示任意十進制數字
    [[:xdigit:]]表示十六進制數字範圍
    [[:alpha:]] 表示任意字母
    [[:alnum:]] 表示任意字母或數字
    [[:upper:]] 表示大寫字母
    [[:lower:]] 表示小寫字母
    [[:blank:]] 水平空白字符
    [[:space:]] 水平或垂直空白字符
    [[:punct:]] 特殊字符
  • 常用命令舉例
    • 字符替換
      • 小寫轉換成大寫:echo abcfsjdlfali | tr a-z A-Z > /tmp/file.out
      • 大寫轉換成小寫:echo abcfsjdlfali | tr A-Z a-z > /tmp/file2.out
      • 將輸入的字符串中包含set1中字符替換爲set2中的字符:
        echo abcfsjdlfali | tr 'abc' '123' > /tmp/file3.out
      • 將多行合併成一行
    • 刪除字符
      • 刪除不滿足要求的字符:
        echo abcfsjdlfali | tr -d 'abc' > /tmp/file4.out
      • dos格式文件與linux文件的轉換
        tr -d '\r' < dos.txt > linux.txt
      • 將多行合併成一行
        tr -d '\n' < linux.txt > linux.txt.bak
    • 提取滿足要求的字符
      • 提取所有字符:
        echo kjahdfla12039845lkasdkfiau | tr -cd [[:digit:]]
    • 字符去重
      • 去除多餘的空格
        echo "aksdjf " |tr -s " "
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章