TR命令可以对来自标准输入的字符进行替换,删除以及压缩。它可以将一组字符变成另一组字符,因而通常也被称为转换命令。
man手册中的解释是:Translate, squeeze, and/or delete characters from standard input, writing to standard output.翻译过来是:转换、压缩或者删除从标准输入中读到的字符,并写道标准输出中。
下面来看具体用法:
注:tr只能通过stdin(标准输入),而无法通过命令行参数来接受输入。
①,转换
将大写字符转为小写字符。'A-Z'以及'a-z'都是集合,我们可以用“起始字符-终止字符”这种格式。注意必须是升序,否则会报错:
tr的格式如下:tr [options] set1 set2
当set1长度大于set2时,set2会不断重复其最后一个字符,直到长度与set1相同,例如:
因为set2只有两个字符,所以从第3个字符开始都被转换成了B。
相反,当set2长度大于set1时,set2多余的字符会被忽略,此例略。
②,删除字符。
tr有一个选项-d,可以通过指定需要被删除的字符集和,将出现在stdin中的字符清除掉。
例:
将stdin中的所有数字删除。
③,压缩字符。
tr命令可以利用-s选项来压缩连续重复的字符。
④,字符集补集
我们可以利用-c这个选项来使用set的补集。-c [set]等同于定义了一个集合(补集),这个集合中的字符不包含在set中。