tr命令常用方式總結


1. 簡介  

  tr命令常用來替換,刪除來自標准輸入字符串中的字符。注意,操作的單位是字符,不是字符串。也就是說,不管是替換還是刪除,都是針對字符串中某個字符的。比如tr命令不能很方便地實現字符串替換:把“Hello World”變成“Hello Beijing”,但是可以很方便地把每一個大寫字符變成小寫字符,echo "Hello World" | tr '[A-Z]' '[a-z]', 最后輸出“hello world”。

 

2. 使用方法

  tr  [option]   SET1   [SET2]

  其中SET1通常作為被處理的字符集,是必須要給出的。而SET2一般只有在使用tr進行字符替換的時候才會用到。而且SET2和SET1必須一樣長。比如, echo "x0y0z" | tr [xyz] [abc] , 這里需要注意,tr是針對字符的,不是字符串的。所以例子中意思是,把字符x替換成字符a,把字符y替換成字符b,把字符z替換成字符c。並不是把xyz替換成abc。這也是SET2必須和SET1一樣長的原因。這個例子最后輸出“a0b0c”。

  option

    -d 或 --delete, 刪除指定的字符, 比如  echo "i2i3ii0i3i4i9i" | tr -d [0-9], 刪除字符串中所有的數字,最后輸出 “iiiiiiii”。

    -c 或 --completment, 反選字符,在SET1中的字符不做處理,其余的做出對應處理。比如   echo "HeHe" | tr -d -c [e]  , 刪除除了字符‘e’之外的其他字符。

    -s 或-squeeze-repeats, 把連續的字符變成單個字符,比如 echo "I looooooove my moneyyyyyyyyy" | tr -s [a-z], 最后輸出 “I love my money”。

  SET

    CHAR1-CHAR2, 表示范圍。只能由小到大,不能由大到小

    常見的反斜杠轉義字符,比如'\n', '\t', '\r'之類的

    [:alnum:] :所有字母字符與數字

    [:digit:] :所有數字

    [:upper:] :所有大寫字母

    [:space:] :所有水平與垂直空格符

 

3. 常見用法

  <1> 小寫轉大寫:

    echo “hello” | tr [a-z] [A-Z]   或者  echo "hello" tr [:lower:] [:upper:]

  <2> 刪除Windows文件“造成”的'^M'字符

    cat  $file_name  |  tr -d "\r"  

    <3> 刪除連續的字符

    echo "hhhhhh" | tr -s [:alnum:]

 


免責聲明!

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



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