linux 命令:tr 的简单使用

时间:2021-12-06 21:55:30

工作的需要,用到了tr命令,因为用到的次数不是很多,怕以后忘记了百度,就自己总结下。例子什么的,copy linux shell 脚本攻略这本书。

tr:常用选项

   -c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
  
-d 删除字符串1中所有输入字符。
   -s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。

  1. tr [options] set1 set2   将来自stdin的输入字符从set1映射到set2,然后将输出写入stdout(标准输出)
    echo "HELLO WHO IS THIS" | tr 'A-Z' 'a-z'
    结果:hello who is this
  2. tr进行数字加密和解密

  3. tr '\t' ' ' < file.txt  将制表符转换成空格

  4. 用tr删除字符
    cat fie.txt | tr -d '[set 1]'

    字符集补集: tr -c [set1] [set2] 
    echo hello 1 char 2 next 4 | tr -d -c '0-9 \n'
    结果: 1  2  4

    摈除多余的换行符: cat aaa | tr -s '\n'
    结果:1111 2
               222
              3333 4444
    数字相加:cat aaa
    1
    2
    3
    4

    cat aaa | echo $[ $(tr '\n' '+' ) 0 ]
    结果:11

    在上面的命令中,tr用来将'\n'替换成'+',因此我们得到了字符串"1+2+3+...5+",但是

    在字符串的尾部多了一个操作符+。为了抵消这个多出来的操作符,我们再追加一个0。

  5. 字符类

    tr可以像使用集合一样使用各种不同的字符类

    tr [:class:] [:class:]

    tr '[:lower:]' '[:upper:]'

    

    

     

 
-c或——complerment:取代所有不属于第一字符集的字符; -d或——delete:删除所有属于第一字符集的字符; -s或--squeeze-repeats:把连续重复的字符以单独一个字符表示; -t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。

来自: http://man.linuxde.net/tr