tr只能通过标准输入stdin接受输入,无法接受参数,它可以将一组字符转变成另一组字符。
使用的格式:
tr将来自stdin的字符从set1映射到set2,并输入到stdout。set1和set2可以是字符类或者字符集,如果set2的长度小于set1,那么set2的最后一个字符会重复到与set1的长度相等,如果set1的长度小于set2,那么set2中超出set1的部分会被忽略。
tr的实际应用:
上面这段代码就把大写字符转换成了小写字符。
字符集是可以自己定制的,例如'BHU-}','a-ch-l1-3'这样都是合法集合,像'\n','\t'这种特殊字符也可以使用。
所以,tr是可以用来对文件进行简单压缩的,例如web前端的js、css和html文件,实际上都可以用tr命令去除多余空格和空白行,来实现最基本的压缩。
tr还可以用来加密和解密
输出是61237
输出是12345
这样我们实现了一个简单的加密和解密过程。
一个比较有名的ROT13加密,就可以使用tr来实现,关于ROT13大家可以自行百度。
输出Uryyb Jbeyq
输出Hello World
大家可以看到,加密和解密是一样的。
tr删除字符
使用-d参数可以删除指定的字符集合。
输出Hello World
使用-c可以使用set1的补集
输出2213
tr压缩文件
例如我们有一个简单的js文件test.js
我们可以使用以下命令:
第一次tr我们删除换行符,第二次使用-s参数删除重复的空白,输出如下:
我们可以使用标准输出到另一个文件:
这样就实现了文件的简单压缩,当然更好的压缩还包括去除注释等等。
tr可以使用的字符类
alnum 字母和数字
alpha 字母
control 控制字符
digit 数字
graph 图形字符
lower 小写字母
upper 大写字母
print 可打印字符
punct 标点符号
space 空白字符
xdigit 十六进制字符
适用方法: