一,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. jzoj 6798. 【2014广州市选day2】regions

    Description 在平面上堆叠着若干矩形,这些矩形的四边与平面X坐标轴或Y坐标轴平行.下图展示了其中一种情况,3个矩形的边将平面划分成8个区域: 下面展示了另一种稍稍复杂一些的情况: 你的任务是 ...

  2. An Introduction to Differential Privacy

    原文链接:An Introduction to Differential Privacy 差分隐私算法可以允许分析人员执行良性的聚合分析,同时保证个人隐私得到切实的保护.. 背景数据分析中的隐私保护技 ...

  3. adb连接手机

    1. 通过wifi, 利用adb来连接手机. 在pc的cmd中输入命令: adb connect 192.168.1.100 其中adb就是手机的ip. 如果连接成功, 就可以进入android的sh ...

  4. docker下jira数据备份和还原注意路径

    重点:jira页面上的备份与恢复页面的路径,跟我实际路径是有出入的,如果找不到就用find去搜下备份文件就知道怎么操作了 1.登录jira后,右上角的系统——左侧的导入与导出——选择里面的备份与恢复 ...

  5. oracle之三备份恢复概述

    备份恢复概述 1.1 数据库故障的类型: 1)user process failure: pmon 自动处理 2)instance failure: smon 自动处理 3)user errors : ...

  6. Linux下find与exec的联手干大事

    在Linux下工作,find命令绝对是一个非常高频的命令.我们可以用find命令来找到符合某些关键词的文件,找到某些日期的文件,也可以设定一些正则表达式,找到一系列满足该条件的文件. 但是,如果只有一 ...

  7. Django设置前端背景图片

    设置 setting.py 文件 STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static&qu ...

  8. 实用js方法DataUrl转为File、url转base64

    声明:仅为方便自己所需,也希望能方便他人,如有侵权,联系删除. 1,DataUrl转为File /** * DataUrl转为File * @param {String} dataUrl - data ...

  9. [LeetCode]404. 左叶子之和(递归)、938. 二叉搜索树的范围和(递归)(BST)

    题目 404. 左叶子之和 如题 题解 类似树的遍历的递归 注意一定要是叶子结点 代码 class Solution { public int sumOfLeftLeaves(TreeNode roo ...

  10. CSAPP 第一章 计算机系统漫游

    第一章 计算机系统漫游 C语言的起源:(系统级编程的首选) C语言与Unix操作系统关系密切 C语言小而简单:其设计由一个人掌控 C语言是为实践目的设计的:其设计用来实现Unix操作系统 C语言程序编 ...