简介
tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
【注意】tr是单个字符处理工具,而不是字符串处理工具!
命令格式
tr [OPTION]… SET1 [SET2]
常用参数
| -s | 缩减连续重复的字符成指定的单个字符 |
|---|---|
| -d | 删除指令字符(将重复出现字符串压缩为一个字符串) |
| -c | 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII |
字符集合的范围
| \n | 换行 |
|---|---|
| 回车 | |
| \t | 水平制表符 |
| \v | 垂直制表符 |
| 字符1-字符2 | 从字符1 到字符2 的升序递增过程中经历的所有字符 |
| [:alnum:] | 任意数字和字母 |
| [:alpha:] | 任意大小写字母 |
| [:blank:] | 所有水平空格 |
| [:cntrl:] | 所有控制字符 |
| [:digit:] | 任意数字,相当于 0-9 |
| [:graph:] | 所有可打印的字符(不包含空格符) |
| [:print:] | 所有可打印的字符(包含空格符) |
| [:lower:] | 任意小写字母 |
| [:upper:] | 任意大写字母 |
| [:punct:] | 标点符号 |
示例
[root@gkdaxue ~]# echo $PATH | tr ":" "\n"/usr/local/sbin/usr/local/bin/usr/sbin/usr/bin/root/bin[root@gkdaxue ~]# echo "a1213fdasf" | tr [afd] [AFO]A1213FOAsF[root@gkdaxue ~]# echo "abbbaacccfddd" | tr -s [abcdf]abacfd[root@gkdaxue ~]# echo "a1213fdasf" | tr -d "[:alpha:]"1213[root@gkdaxue ~]# seq 9 | tr '\n' '|'1|2|3|4|5|6|7|8|9|[root@gkdaxue ~]#[root@gkdaxue ~]# seq 5 | echo $[ $(tr '\n' '+') 0 ]15[root@gkdaxue ~]# cat tr.txthello worldgkdaxue[root@gkdaxue ~]# cat tr.txt | tr -c '[hello]' '*'hello**o*l********e*[root@gkdaxue ~]### 以下两个效果一样[root@gkdaxue ~]# echo $PATH | tr [a-z] [A-Z][root@gkdaxue ~]# echo $PATH | tr [:lower:] [:upper:]/USR/LOCAL/SBIN:/USR/LOCAL/BIN:/USR/SBIN:/USR/BIN:/ROOT/BIN
注意事项
当 set1 里面的内容大于 set2 时
[root@gkdaxue ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin[root@gkdaxue ~]# echo $PATH | tr [abcsi] "[ABC]"/u]r/loCAl/]B]n:/u]r/loCAl/B]n:/u]r/]B]n:/u]r/B]n:/root/B]n
当 set1 里面的内容小于 set2 时
[root@gkdaxue ~]# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin[root@gkdaxue ~]# echo $PATH | tr [abc] [ABCSI]/usr/loCAl/sBin:/usr/loCAl/Bin:/usr/sBin:/usr/Bin:/root/Bin
