一,tr命令的用途
tr命令可以替换或删除文件中的字符
它从标准输入设备读取数据,
处理完成将结果输出到标准输出设备
说明:作者:刘宏缔 邮箱: 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/trcoreutils-8.30-6.el8.x86_64
如果提示找不到命令或命令被误删除,
可以用dnf安装
[root@blog ~]$ dnf install coreutils
三,查看tr命令的版本和帮助
1,查看版本
[root@blog ~]# tr --versiontr (GNU coreutils) 8.30Copyright (C)2018Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later .
This is free software: you are freeto 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
devtmpfs7.5G 0 7.5G 0 /dev
tmpfs7.5G 0 7.5G 0 /dev/shm
tmpfs7.5G 492K 7.5G 1 /run
tmpfs7.5G 0 7.5G 0 /sys/fs/cgroup/dev/vda1 100G 15G 86G 15 /
/dev/vdb1 500G 3.6G 497G 1 /databak
tmpfs1.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
DEVTMPFS7.5G 0 7.5G 0% /DEV
TMPFS7.5G 0 7.5G 0% /DEV/SHM
TMPFS7.5G 492K 7.5G 1% /RUN
TMPFS7.5G 0 7.5G 0% /SYS/FS/CGROUP/DEV/VDA1 100G 15G 86G 15% /
/DEV/VDB1 500G 3.6G 497G 1% /DATABAK
TMPFS1.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,5devtmpfs0%tmpfs0%tmpfs1%tmpfs0%
/dev/vda1 15%
/dev/vdb1 1%tmpfs0%
说明: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%M7.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 '