博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6 tr
阅读量:4599 次
发布时间:2019-06-09

本文共 924 字,大约阅读时间需要 3 分钟。

 

tr

这个命令是用来执行替换的,但它只接收标准输入,即其参数中是没有文件名这个说法的,只能输入重定向。

0000 0000 

如果不带任何参数,就是简单的替换

从上图看,可以看到完全替换了(“abc”被称为SET1,“123”被称为SET2),而且使用了重定向;SET1和SET2可以长度不等,如果SET1长,则SET1中过长的部分会替换为SET2中最后一个字符,相反SET2中过长的会被忽略

 

0000 0001 -c

这个是补集,补集的意思是这样的:对于输入的字符,如果它在SET1中,就不处理,如果不在,就用SET2的内容替代,而且不管SET2有多长,都是用其最后一个替换,请看示例:

可以看到甭管SET2有多长,都是用其最后一个字符替代的,而且SET2不能为空,否则会告诉你有问题。

0000 0010 -d

这个参数执行的是删除,它只有SET1参数,它把输入中在SET1中存在的都干掉了,参见下图

上面的[:xdigit:]表示十六进制中的字符,即0-9ABCDEFabcdef

0000 0011 -s

这个参数表示压缩,它同样只有SET1,对于在SET1中的字符,如果在输入中有连续同样的,会把这几个一样的字符压缩成一个,见下图

在上图中可以看到,十六进制的中的相应字符被压缩了,连续的若干个a被压缩成了一个,其它的也类似。

0000 0100 -t

这个没的说,它是默认的选项,SET1 SET2都有,执行的就是用SET2替换SET1。

SET1 SET2可以不加引号,但是建议都加上,另外括号中可以写多个条件,如:

echo "Hello World I Love You" |tr "[:lower:] [:upper:]" "0-9"

 这里有个坑,SET2中不支持SET1中丰富的简略类型,似乎只可以使用[:lower:] [:upper:]

 

 倘若对输入的内容进行替换,同时还要压缩,则在用-s的同时还要传入SET2,见下面:

A=1,,2,,,3,,,4,,,5echo $A | tr -s ',' ' '

转载于:https://www.cnblogs.com/world-for-gold/p/9940125.html

你可能感兴趣的文章
php文件上传类
查看>>
CF219D Choosing Capital for Treeland
查看>>
luogu P3809 【模板】后缀排序
查看>>
Red Gate 破解
查看>>
JVM 调优工具
查看>>
SCTF 2014 pwn题目分析
查看>>
集合以及特殊集合
查看>>
USACO 2.2 Runaround Numbers
查看>>
利用 force index优化sql语句性能
查看>>
Matlab画图-非常具体,非常全面
查看>>
365. Water and Jug Problem
查看>>
SQL数据库数据检索top和distinct
查看>>
平衡搜索树--红黑树 RBTree
查看>>
sqlite驱动下载
查看>>
让IE6/IE7/IE8浏览器支持CSS3属性
查看>>
队列实现霍夫曼树
查看>>
【Java】图片高质量缩放类
查看>>
Python :类中设置默认属性并修改
查看>>
磁盘管理综合测试
查看>>
Unity3d Shader开发(三)Pass(Pass Tags,Name,BindChannels )
查看>>