- 语法
tr(选项)(参数)
tr (选项) a b
把a替换成b
- 选项
-c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符;
-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;
-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。
实例
不加选项
[root@localhost ~]# echo hello|tr 'a-z' 'A-z'
HELLO
大小写替换
[root@localhost ~]# echo {1..5}|tr ' ' '\t'
1 2 3 4 5
空格替换成\t tab制表符替换
[root@localhost ~]# echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4
aa.,a 1 b# 2 c*/cc 3 ddd 4
[root@localhost ~]# echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4|tr -d 'a-z'
., 1 # 2 */ 3 4 删除所有的字母
- -c 取代所有不属于第一字符集的字符
[root@localhost ~]# echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4
aa.,a 1 b# 2 c*/cc 3 ddd 4
[root@localhost ~]# echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 |tr -c '0-9' '!'
!!!!!!1!!!!2!!!!!!!3!!!!!4![root@localhost ~]#
除0-9之外的所有字符均用!取代,包括\n 空格等字符
- -d 删除字符
[root@localhost ~]# echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 |tr -d '0-9'
aa.,a b# c*/cc ddd
删除数字
-d -c组合使用
[root@localhost ~]# echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 |tr -cd '0-9 \n'
1 2 3 4
空格,换行符其他全部删除,只保留数字
- -s 连续重复字符只显示一次
[root@localhost ~]# echo "thissss is a text linnnnnnne." | tr -s ' sn'
this is a text line.
[root@localhost ~]# echo 1 2 3 4 5 6 7 8 9 | xargs -n1 | echo $[ $(tr '\n' '+') 0 ]
45
echo输出后竖向打印,把回车符替换成+号变成1+2..+9+,后边加0 然后用$[]计算
[root@localhost ~]# echo $[`echo {1..9}|tr ' \n' ' + '`]
45
把空格替换成 空格+空格 用$[]计算