linux(centos8):用tr替换或删除字符
一,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替换或删除字符的更多相关文章
- tr 替换或删除字符
1.命令功能 tr 从标准输入中替换,压缩间隔或者删除字符并从定向到标准输出. 2.语法格式 tr option SET1 SET2 参数 参数说明 -c 取代所有SET1中字符串 -d 删除所 ...
- tr转换或删除字符
字符处理命令:tr —— 转换或删除字符 逐个字符处理而不是处理单词的tr [OPTION]... SET1 [SET2] -d: 删除出现在字符集中的所有字符 tr ab AB
- 【Linux基础】tr命令替换和删除字符
1.tr命令 tr可以对来自标准输入的字符进行替换.压缩和删除,可以将一组字符变成另外一组字符.通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其 ...
- 3.20 tr:替换或删除字符
tr命令 从标准输入中替换.缩减或删除字符,并将结果写到标准输出. tr [option] [SET1] [SET2] tr [选项] [字符1] [字符2] -d 删除字符 -s ...
- Linux常用基本命令:tr-替换或者删除字符
tr命令 作用:从标准输入中替换,缩减或者删除字符,并将结果输出到标准输出 格式:tr [option] [set1] [set2] tr [选项] [字符1] [字符2] 把y替换m, o替换e,并 ...
- tr命令-转换和删除字符
tr 转换和删除字符 支持标准输入 格式 tr [OPTION]...SET1[SET2] Translate, squeeze, and/or delete characters from stan ...
- tr 替换删除字符
1.关于tr 通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您 ...
- JAVA insert() 插入字符串 reverse() 颠倒 delete()和deleteCharAt() 删除字符 replace() 替换 substring() 截取子串
insert() 插入字符串 StringBuffer insert(int index,String str) StringBuffer insert(int index,char ch) Stri ...
- 复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符及在vim中设置tab缩进为4个字符
1.复制/etc/profile至/tmp/目录,用查找替换命令删除/tmp/profile文件中的 行首的空白字符 在命令模式下,使用正则表达式匹配 行首有空白字符行的模式:^[[:space:]] ...
随机推荐
- xargs命令学习,于阮一峰博客
一.标准输入与管道命令 Unix 命令都带有参数,有些命令可以接受"标准输入"(stdin)作为参数. $ cat /etc/passwd | grep root 上面的代码使用了 ...
- python3 while循环
python不支持n++这样格式,因为python中变量不像c那样事先定义好变量类型,在内存中开辟指定的空间,然后赋值. python中以字符串为例,事先在内存划分空间来存放字符串,然后用变量名来指向 ...
- 科普,想成为厉害的 Java 后端程序员,你需要懂这些
站在运筹帷幄的角度来看,一名厉害的 Java 后端程序员都需要懂得哪些知识呢?我想,这也是很多读者迫切想知道的一个问题,因为如果不站在一个宏观的角度的话,所有学过的知识点都是零散的,就感觉像一只迷路的 ...
- 【Jenkins】三、设置定时任务
1.点击工程(Test1), 选择左侧的配置 2.选择"构建触发器"下面的"定时构建" 3.填写定时规则(这里设置每隔30分钟执行一次) 4.定时规则语法字段 ...
- django中外键的related_name属性
我先定义两个模型,一个是作者,一个是作者出版的书籍,算是一对多的类型. class Person(models.Model); name = models.CharField(verbose_name ...
- ZooKeeper-3.5.6分布式锁
原理 基本方案是基于ZooKeeper的临时节点与和watch机制.当要获取锁时在某个目录下创建一个临时节点,创建成功则表示获取锁成功,创建失败则表示获取锁失败,此时watch该临时节点,当该临时节点 ...
- pytorch和tensorflow的爱恨情仇之张量
pytorch和tensorflow的爱恨情仇之基本数据类型:https://www.cnblogs.com/xiximayou/p/13759451.html pytorch版本:1.6.0 ten ...
- Oracle Database XE 11gR2 SQL 命令行的显示调整
操作系统:Windows 10 x64 Oracle Database XE 11gR2 参考:在cmd命令行使用sqlplus时的页面显示问题 通过 cmd 命令行或运行 SQL 命令行查看一张表的 ...
- 配置adpate的方式
配置adpate的方式 资源文件配置 ArryAdapter<CharSequence>cadapt= ArryAdapter.createFromResource(this,资源id,a ...
- 发现3 .js与Android和英特尔XDK
下载example3.zip - 456.5 KB 下载apk14.zip - 6.8 MB 下载apk13.zip - 6.8 MB Introduction 本文是关于使用Intel XDK和t ...