tr命令

时间:2024-10-14 18:07:32

tr命令是linux下一个字符处理命令,用途:
    字符替换
    字符删除
    字符压缩
形式:tr [OPTION]... SET1 [SET2]
接口:输入输出都是标准流,所以要通过管道来调用这个命令
参数:   
    -c 对SET1取补集,在进行一切操作之前,对SET1取补集.
    -d 删除SET1中的全部字符,不进行字符替换
    -s 压缩重复字符,例如wweeedd压缩之后变成wed
    -t 对SET1进行截断,使之与SET2等长
    字符删除和字符替换两个功能不可共用,只能选择其一来用(字符替换只发生在没有-d参数且SET1和SET2都出现时).字符压缩和字符删除可以共用,字符压缩和字符替换可以共用.

  -t只能用于字符替换.进行字符替换时,如果SET2偏长,那就截断到与SET1等长;如果偏短,那就重复SET2的最后一个字符,直到与SET1等长.
    用-s压缩重复字符时,如果没使用删除字符和替换字符这两个功能,那就用SET1来压缩.否则,先进行删除或者替换,然后按照SET2进行压缩字符.
    -c和-t这两个命令就是对SET1进行一下处理.
例子:
    x='1212334341223'
    echo $x | tr 1234 abcd 把1转换成a,把2转换成b,把3转换成c,把4转换成d
字符集的表示方法   
    支持转义:\NNN(3位八进制表示ascii码),c语言里面的转义基本都支持,如响铃\a,退格\b,换行\n,回车\r,制表\t\v.
    CHAR1-CHAR2:从CHAR1到CHAR2之间的全部字符
    预定义的表示方法
        [:alnum:]字母集+数字集
        [:alpha:]字母集,[:upper:]和[:lower:]大小写字符集
        [:digit:]数字集,[:xdigit:]十六进制字符集
        [:blank:]水平空字符集,[:space:]水平空字符集+竖直空字符集
        [:cntrl:]控制字符集
        [:print:]一切可打印的字符,[:graph:]除空格外的全部可打印字符
        [:punct:]符号集