一,tr命令的用途

tr命令可以替换或删除文件中的字符

它从标准输入设备读取数据,

处理完成将结果输出到标准输出设备

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,查看tr命令所属的rpm包

  1. [root@blog ~]# whereis tr
  2. tr: /usr/bin/tr /usr/share/man/man1/tr.1.gz /usr/share/man/man1p/tr.1p.gz
  3.  
  4. [root@blog ~]# rpm -qf /usr/bin/tr
  5. coreutils-8.30-6.el8.x86_64

如果提示找不到命令或命令被误删除,

可以用dnf安装

  1. [root@blog ~]$ dnf install coreutils

三,查看tr命令的版本和帮助

1,查看版本

  1. [root@blog ~]# tr --version
  2. tr (GNU coreutils) 8.30
  3. Copyright (C) 2018 Free Software Foundation, Inc.
  4. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
  5. This is free software: you are free to change and redistribute it.
  6. There is NO WARRANTY, to the extent permitted by law.
  7.  
  8. Written by Jim Meyering.

2,查看帮助

  1. [root@blog ~]# tr --help

3,查看手册

  1. [root@blog ~]# man tr

四,tr命令的使用例子

1,删除字符

去除df输出结果中的已使用百分比的百分号:%

#-d:删除指定的字符

  1. [root@blog ~]# df -h | tr -d '%'
  2. Filesystem Size Used Avail Use Mounted on
  3. devtmpfs 7.5G 0 7.5G 0 /dev
  4. tmpfs 7.5G 0 7.5G 0 /dev/shm
  5. tmpfs 7.5G 492K 7.5G 1 /run
  6. tmpfs 7.5G 0 7.5G 0 /sys/fs/cgroup
  7. /dev/vda1 100G 15G 86G 15 /
  8. /dev/vdb1 500G 3.6G 497G 1 /databak
  9. tmpfs 1.5G 0 1.5G 0 /run/user/1000

2,把小写输出转为大写:

  1. [root@blog ~]# df -h | tr a-z A-Z
  2. FILESYSTEM SIZE USED AVAIL USE% MOUNTED ON
  3. DEVTMPFS 7.5G 0 7.5G 0% /DEV
  4. TMPFS 7.5G 0 7.5G 0% /DEV/SHM
  5. TMPFS 7.5G 492K 7.5G 1% /RUN
  6. TMPFS 7.5G 0 7.5G 0% /SYS/FS/CGROUP
  7. /DEV/VDA1 100G 15G 86G 15% /
  8. /DEV/VDB1 500G 3.6G 497G 1% /DATABAK
  9. TMPFS 1.5G 0 1.5G 0% /RUN/USER/1000

说明:大小写字符集可以用集合字串表示,

上面的命令等同于:

  1. [root@blog ~]# df -h | tr '[:lower:]' '[:upper:]'

3,压缩连续的字符

例子:打印每个分区和使用的占比

#-s:--squeeze-repeats:缩减连续重复的字符成指定的单个字符

  1. [root@blog ~]$ df -h | sed '1d' | tr -s ' ' | cut -d ' ' -f 1,5
  2. devtmpfs 0%
  3. tmpfs 0%
  4. tmpfs 1%
  5. tmpfs 0%
  6. /dev/vda1 15%
  7. /dev/vdb1 1%
  8. tmpfs 0%

说明:df 命令输出的部分空格较多,数量不一致,

我们用tr做一下压缩,这样方便cut读取

4,取消换行

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

  1. [root@blog ~]# seq 5
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. [root@blog ~]# seq 5 | tr "\n" "|"
  8. 1|2|3|4|5|

5,删除所有小写字符

  1. [root@blog ~]# df -h | tr -d a-z
  2. F S U A U% M
  3. 7.5G 0 7.5G 0% /
  4. 7.5G 0 7.5G 0% //
  5. 7.5G 492K 7.5G 1% /
  6. 7.5G 0 7.5G 0% ///
  7. //1 100G 15G 86G 15% /
  8. //1 500G 3.6G 497G 1% /
  9. 1.5G 0 1.5G 0% ///1000

说明:小写字符集可以用[:lower:]这个集合字串表示

所以上面的命令等同于:

  1. [root@blog ~]# df -h | tr -d '[:lower:]'

删除小写字符以外的所有字符:

#-c: 取反操作,取指定字符集合的补集

  1. [root@blog ~]# df -h | tr -d -c a-z

6,运维:使/proc目录下进程的环境变量能正常换行显示

  1. [root@blog ~]# cat /proc/28026/environ
  2. ...TERM=xtermSHELL=/bin/bashSHLVL=1LOGNAME=webop...

proc中的环境变量是供程序阅读,查看时不够人性化,

我们使它可以正常阅读

  1. [root@blog ~]# cat /proc/28026/environ | tr '\0' '\n'
  2. ...
  3. TERM=xterm
  4. SHELL=/bin/bash
  5. SHLVL=1
  6. LOGNAME=webop
  7. ...

五,tr命令的相关文档

1,字符集合的代码:

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

2,转义字符

  1. \\ 反斜杠
  2. \a 终端鸣响
  3. \b 退格
  4. \f 换页
  5. \n 换行
  6. \r 回车
  7. \t 水平制表符
  8. \v 垂直制表符
  9. \0 null字符

六,查看centos版本

  1. [root@blog ~]# cat /etc/redhat-release
  2. 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. 渣渣的Leetcode之旅(Python3)_1.两数之和

    题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标.你可以假设每种输入只会对应一个答案.但是,数组中同一个元素不能使用两遍 ...

  2. list列表(也叫数组),以及常用的一些方法

    列表的表达: 元祖tuple,元祖是不可被修改的列表 1.列表的增,list.append(元素).或list.insert(index,元素) 2.列表的删,list.pop(可指定index也可不 ...

  3. STL(常用)

    STL 简单记录.讲解一些初级阶段常用的用法. STL是C++的一个标准模板库,其中包含了许多在计算机领域常用的基本数据结构以及基本算法.STL主要依赖于模板,使得STL具有广泛的通用性.这篇文章旨在 ...

  4. Unit1:Android

    unit1 1.安卓版本 最新数据访问维基百科 2008年,android1.0 2011年,android3.0,平板失败 同年10月,android4.0,无差别使用 2014年,android5 ...

  5. 解压gzip格式文件(包括网页)

    先上源码 参数说名: - source :gzip格式流内容. - len: gzip流长度 - dest: 解压后字符流指针 - gzip: 压缩标志,非0时解压gzip格式,否则按照zip解压 说 ...

  6. 分布式系统监视zabbix讲解七之分布式监控

    分布式监控 概述 Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控 代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器. Pro ...

  7. 面试题:JVM在Java堆中对对象的创建、内存结构、访问方式

    一.对象创建过程 1.检查类是否已被加载 JVM遇到new指令时,首先会去检查这个指令参数能否在常量池中定位到这个类的符号引用,检查这个符号引用代表的类是否已被加载.解析.初始化,若没有,则进行类加载 ...

  8. 灵活使用 SQLAlchemy 中的 ORM 查询

    之前做查询一直觉得直接拼 SQL 比较方便,用了 SQLAlchemy 的 ORM 查询之后,发现也还可以,还提高了可读性. 这篇文章主要说说 SQLAlchemy 常用的 ORM 查询方式,偏实践. ...

  9. SpringBoot框架:使用mybatis连接mysql数据库完成数据访问(二)

    一.导入依赖包 1.在创建项目时勾选: 勾选SQL中的JDBC API.MyBatis Framework.MySQL Driver,创建项目后就会自动配置和引入这些包. 2.在pom.xml文件中添 ...

  10. 这10道springboot常见面试题你需要了解下

    ​ 1.什么是Spring Boot? 多年来,随着新功能的增加,spring变得越来越复杂.只需访问https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的 ...