一,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,取消换行

只需要把"\n"替换成其它字符即可

[root@blog ~]# seq 5
1
2
3
4
5
[root@blog ~]# seq 5 | tr "\n" "|"
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  '\0' '\n'
...
TERM=xterm
SHELL=/bin/bash
SHLVL=1
LOGNAME=webop
...

五,tr命令的相关文档

1,字符集合的代码:

[:alnum:]:字母和数字,可以用来替代'a-zA-Z0-9'
[:alpha:]:字母,可以用来替代'a-zA-Z'
[:cntrl:]:控制(非打印)字符
[:digit:]:数字,可以用来替代'0-9'
[:graph:]:图形字符
[:lower:]:小写字母,可以用来替代'a-z'
[:print:]:可打印字符
[:punct:]:标点符号
[:space:]:空白字符
[:upper:]:大写字母,可以用来替代'A-Z'
[:xdigit:]:十六进制字符

2,转义字符

  \\        反斜杠
\a 终端鸣响
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\0 null字符

六,查看centos版本

[root@blog ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)

linux(centos8):用tr替换或删除字符的更多相关文章

  1. tr 替换或删除字符

    1.命令功能 tr 从标准输入中替换,压缩间隔或者删除字符并从定向到标准输出. 2.语法格式 tr  option  SET1  SET2 参数 参数说明 -c 取代所有SET1中字符串 -d 删除所 ...

  2. tr转换或删除字符

    字符处理命令:tr —— 转换或删除字符 逐个字符处理而不是处理单词的tr [OPTION]... SET1 [SET2]    -d: 删除出现在字符集中的所有字符 tr ab AB

  3. 【Linux基础】tr命令替换和删除字符

    1.tr命令 tr可以对来自标准输入的字符进行替换.压缩和删除,可以将一组字符变成另外一组字符.通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其 ...

  4. 3.20 tr:替换或删除字符

    tr命令 从标准输入中替换.缩减或删除字符,并将结果写到标准输出. tr [option] [SET1]  [SET2] tr [选项]   [字符1]  [字符2]   -d    删除字符 -s  ...

  5. Linux常用基本命令:tr-替换或者删除字符

    tr命令 作用:从标准输入中替换,缩减或者删除字符,并将结果输出到标准输出 格式:tr [option] [set1] [set2] tr [选项] [字符1] [字符2] 把y替换m, o替换e,并 ...

  6. tr命令-转换和删除字符

    tr 转换和删除字符 支持标准输入 格式 tr [OPTION]...SET1[SET2] Translate, squeeze, and/or delete characters from stan ...

  7. tr 替换删除字符

    1.关于tr    通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您 ...

  8. JAVA insert() 插入字符串 reverse() 颠倒 delete()和deleteCharAt() 删除字符 replace() 替换 substring() 截取子串

    insert() 插入字符串 StringBuffer insert(int index,String str) StringBuffer insert(int index,char ch) Stri ...

  9. 复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符及在vim中设置tab缩进为4个字符

    1.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符 在命令模式下,使用正则表达式匹配 行首有空白字符行的模式:^[[:space:]] ...

随机推荐

  1. pthon中取整的几个方法round、int、math

    取整的几种方法:1.四舍五入 round(x) 2.向下取整  int(x) 3.取商和余 4.向上取整,需要用到math.ceil(x)(可以理解成大于x且最接近x的整数)import math 5 ...

  2. Tomcat 第一篇:源码导入 IDEA 编辑器

    1 引言 做 Java 的同学应该都见过上面这只名字叫 Tomcat 的猫,毕竟这只猫在过去和现在都是全球最流行的 Web 容器之一. 很有意思的一件事儿是从我接触这只猫开始,从来不知道它的中文名字是 ...

  3. 三、spring boot开发web应用-使用传统的JDBC

    上一节<spring boot第一个web服务>中我们只是简单的展示了spring mvc的功能,并没有涉及到具体的CRUD的操作,也没有涉及到数据持久化的方面.本节中我们将基于原始的JD ...

  4. 云计算openstack共享组件——Memcache 缓存系统(4)

    一.缓存系统 一.静态web页面: 1.在静态Web程序中,客户端使用Web浏览器(IE.FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告 ...

  5. 群光电子-koremes3 ORA-600 [kjxmgmb_nreq:!bat]

    Bug 20250147  ORA-600 [kjxmgmb_nreq:!bat] can occur in RAC crashing the instance  This note gives a ...

  6. SpringBoot-03-配置之yaml语法学习

    3. SpringBoot配置 3.1 yaml语法学习 配置文件 Springboot使用一个全局的配置文件,配置文件名称固定 spplication.properties 语法结构:key=val ...

  7. JVM学习(八)指令重排序

    一.数据依赖性 在学习JVM的指令重排序之前,我们先了解一下什么是数据依赖性: 编译器和处理器在处理具体的指令时,可能会对操作进行重排序来提高执行性能[多条指令并行执行,所以提升性能的同时也可能会导致 ...

  8. 刷题[CISCN2019 总决赛 Day2 Web1]Easyweb

    解题思路 打开网页是这样一个登陆框,随机试了一下常见弱密钥,二次注入等.均是返回不同的猫咪图案 不同的id对应不同的猫咪图案.经测试,返回的id应该是无序,随机的.感觉这里有可能存在注入点,但是测试好 ...

  9. [De1CTF 2019]Giftbox 分析&&TPOP学习

    [De1CTF 2019]Giftbox 刚进来我以为是直接给了shell,恐怖如斯. 随便扔了个命令,之后就没然后了,hhh,截包发现可能存在sql注入. 然后我就不会了... what i lea ...

  10. 关于JAVA的垃圾回收机制

    使用JAVA编程时,几乎不需要考虑"内存泄漏"的问题,这也是JAVA相较于C++的一个优点. 最近在看<Java编程思想>(第四版,听说第五版有点牛逼....),里面讲 ...