一,tr命令的用途
tr命令可以替换或删除文件中的字符
它从标准输入设备读取数据,
处理完成将结果输出到标准输出设备
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,查看tr命令所属的rpm包
[root@blog ~]# whereis tr tr: /usr/bin/tr /usr/share/man/man1/tr.1.gz /usr/share/man/man1p/tr.1p.gz [root@blog ~]# rpm -qf /usr/bin/tr coreutils-8.30-6.el8.x86_64
如果提示找不到命令或命令被误删除,
可以用dnf安装
[root@blog ~]$ dnf install coreutils
三,查看tr命令的版本和帮助
1,查看版本
[root@blog ~]# tr --version tr (GNU coreutils) 8.30 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Jim Meyering.
2,查看帮助
[root@blog ~]# tr --help
3,查看手册
[root@blog ~]# man tr
四,tr命令的使用例子
1,删除字符
去除df输出结果中的已使用百分比的百分号:%
#-d:删除指定的字符
[root@blog ~]# df -h | tr -d '%' Filesystem Size Used Avail Use Mounted on devtmpfs 7.5G 0 7.5G 0 /dev tmpfs 7.5G 0 7.5G 0 /dev/shm tmpfs 7.5G 492K 7.5G 1 /run tmpfs 7.5G 0 7.5G 0 /sys/fs/cgroup /dev/vda1 100G 15G 86G 15 / /dev/vdb1 500G 3.6G 497G 1 /databak tmpfs 1.5G 0 1.5G 0 /run/user/1000
2,把小写输出转为大写:
[root@blog ~]# df -h | tr a-z A-Z FILESYSTEM SIZE USED AVAIL USE% MOUNTED ON DEVTMPFS 7.5G 0 7.5G 0% /DEV TMPFS 7.5G 0 7.5G 0% /DEV/SHM TMPFS 7.5G 492K 7.5G 1% /RUN TMPFS 7.5G 0 7.5G 0% /SYS/FS/CGROUP /DEV/VDA1 100G 15G 86G 15% / /DEV/VDB1 500G 3.6G 497G 1% /DATABAK TMPFS 1.5G 0 1.5G 0% /RUN/USER/1000
说明:大小写字符集可以用集合字串表示,
上面的命令等同于:
[root@blog ~]# df -h | tr '[:lower:]' '[:upper:]'
3,压缩连续的字符
例子:打印每个分区和使用的占比
#-s:--squeeze-repeats:缩减连续重复的字符成指定的单个字符
[root@blog ~]$ df -h | sed '1d' | tr -s ' ' | cut -d ' ' -f 1,5 devtmpfs 0% tmpfs 0% tmpfs 1% tmpfs 0% /dev/vda1 15% /dev/vdb1 1% tmpfs 0%
说明:df 命令输出的部分空格较多,数量不一致,
我们用tr做一下压缩,这样方便cut读取
4,取消换行
只需要把" "替换成其它字符即可
[root@blog ~]# seq 5 1 2 3 4 5 [root@blog ~]# seq 5 | tr " " "|" 1|2|3|4|5|
5,删除所有小写字符
[root@blog ~]# df -h | tr -d a-z F S U A U% M 7.5G 0 7.5G 0% / 7.5G 0 7.5G 0% // 7.5G 492K 7.5G 1% / 7.5G 0 7.5G 0% /// //1 100G 15G 86G 15% / //1 500G 3.6G 497G 1% / 1.5G 0 1.5G 0% ///1000
说明:小写字符集可以用[:lower:]这个集合字串表示
所以上面的命令等同于:
[root@blog ~]# df -h | tr -d '[:lower:]'
删除小写字符以外的所有字符:
#-c: 取反操作,取指定字符集合的补集
[root@blog ~]# df -h | tr -d -c a-z
6,运维:使/proc目录下进程的环境变量能正常换行显示
[root@blog ~]# cat /proc/28026/environ ...TERM=xtermSHELL=/bin/bashSHLVL=1LOGNAME=webop...
proc中的环境变量是供程序阅读,查看时不够人性化,
我们使它可以正常阅读
[root@blog ~]# cat /proc/28026/environ | tr '