matlab中tr什么意思,tr命令详解
tr是translate的简写,亦即翻译,但是遗憾的是,它不能翻译句子,只能翻译单个字符。
1 tr的工作原理是什么?
先记住一点,tr命令不接受指定的文件参数,而只是对标准输入进行翻译。好了,记住这点后,我们继续。
tr的命令格式是tr SET1 SET2,凡是在SET1中的字符,都会被替换为SET2中相应位置上的字符,简单吧!
2 举个例子吧!
tr的例子其实都大同小异,看一个最简单的例子:
我们有一个包含了四个人身高的数据文件,名字叫height.txt,它的内容是这样的:
$ cat height.txt
1.79 1.83
1.65 1.59
我们想搞一个恶作剧,将所有人的身高从1米级别都提高到2米级别,呵呵,一个tr就可以搞定。
$ tr 1 2 < height.txt
2.79 2.83
2.65 2.59
希望你没有忘记,tr只处理标准输入,所以我们需要将height.txt通过重定向指到tr的标准输入才可以。
3 我们可以用tr来修改文件中的间隔符么?
Good idea!
当使用cut的时候,通常会被间隔符问题所困扰,我们这个时候可以考虑到tr这个命令。
还是以height.txt文件为例,其中的间隔符是空格,我们把它修改为制表符吧!
$ tr ' ' '\11' < height.txt
1.791.83
1.651.59
这里有一个小知识点,像制表符、换行符这些字符不好表示,我们可以考虑使用ASCII的八进制形式来表示,制表符的八进制形式是11,回车是15,换行是12。而在tr命令中,可以使用\nnn形式表示八进制形式的字符。如果你实在记不住这些编号,那么用\t表示制表符你总该可以记住吧!(\n代表新行,\r代表回车)
这下,你应该可以理解上面那条命令的作用了吧。如果你仍然怀疑,那么,看看下面这条命令,你就该心服口服了:
$ tr ' ' '\11' < height.txt |sed -n l
1.79\t1.83$
1.65\t1.59$
看!空格的的确确被替换成了制表符喽!
4 使用tr能把文章中的小写都转换成大写么?
这个正是tr所擅长的地方。
加入我们拥有一个文件叫做word.txt,里面包含的内容是AbcdE。
那么最简单的替换大小写的方法是:
$ cat word.txt
AbcdE
$ tr 'a-z' 'A-Z' < word.txt
ABCDE
5 [CHAR*]怎么用?
这是 SET2 专用的设定,功能是重复指定的字符到与 SET1 相同长度为止
例子:
$ cat number.txt
1234567890
$ tr '1-5' '[A*]' < number.txt
AAAAA67890
6 [CHAR*REPEAT]怎么用?
这也是SET2专用的设定,功能是将CHAR重复REPEAT次数。其中REPEAT次数可以用八进制数表示,但记得要以0开头表示八进制数。
例子:
$ tr '1-9' '[A*5]BCDE' < number.txt
AAAAABCDE0
7 在tr中还有哪些表示集合的符号呢?
[:alnum:] :所有字母字符与数字
[:alpha:] :所有字母字符
[:blank:] :所有水平空格
[:cntrl:] :所有控制字符
[:digit:] :所有数字
[:graph:] :所有可打印的字符(不包含空格符)
[:lower:] :所有小写字母
[:print:] :所有可打印的字符(包含空格符)
[:punct:] :所有标点字符
[:space:] :所有水平与垂直空格符
[:upper:] :所有大写字母
[:xdigit:] :所有 16 进位制的数字
例子:
将所有的数字都转换为字符x。
$ tr [:alnum:] '[x*]' < number.txt
xxxxxxxxxx
8 tr里面包含SET1和SET2,那如果出现两个集合的大小不同的情况,tr如何处理呢?
这个问题,最好的解决办法就是做实验啊。
第一种情况是SET1>SET2:
$ tr 1-5 AB < number.txt
ABBBB67890
结论一下子就出来了,SET1中多出来的字符都会和SET2中最后一个字符相对应。
第二种情况SET1
$ tr 1-3 ABCDE < number.txt
ABC4567890
很明了,SET2中多余的部分将被抛弃。
9 讲一讲tr命令的-s选项吧!
这个-s选项,是专门针对SET1起作用的,意思是如果发现有连续的SET1里的字符,就把它们缩减为1个。
一个很经典的应用就是把不规律的空格缩减为一个空格:
$ cat spaces.txt
How are you?
Fine Thank you
$ tr -s ' ' ' ' < spaces.txt
How are you?
Fine Thank you
效果很明显,用户很满意。恩!
10 -d选项咋用?
-d选项是用来删除字符用的。格式是这样的:tr -d charset
$ tr -d ' ' < spaces.txt
How are you?
FineThankyou
看,该有的空格都没了…这就是-d的作用,把空格都删除了!
如果你想把文章中的数字都删除,就tr -d [0-9] < filename就可以了。
11 -c选项的神奇
这个参数能删除指定字符外的补集。
root@ubuntu:/test# cat file
a b c 1 2 3 a b c
root@ubuntu:/test# tr -c 'a-z \n' 'x'
a b c x x x a b c
这把把除小写字母,空格,换行符以外的字符替换成x。
注:都可以用sed 来完成。
eval /dev/null 2>&1||head -c 10)
随机生成10个字符串
matlab中tr什么意思,tr命令详解相关推荐
- Matlab中plot函数及legend函数详解
Matlab中plot函数及legend函数详解 Matlab中plot函数及legend函数详解 Matlab中plot函数全功能解析 功能 二维曲线绘图 语法 plot(Y) plot(X1,Y1 ...
- Matlab中自带地图绘制WorldMap详解
Matlab中自带地图绘制WorldMap详解 转载地址:http://blog.csdn.net/archielau/article/details/7933265,其实这些代码是在matlab中的 ...
- Linux中sort,uniq,cut,wc命令详解
Linux中sort,uniq,cut,wc命令详解 来源:hellodev 本文主要对Linux中sort,uniq,cut,wc这4个命令的使用方法进行了详细说明,希望对你有所帮助. sort s ...
- linux中date使用方法,linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例)...
linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例) 发布于 2016-02-07 15:58:40 | 108 次阅读 | 评论: 0 | 来源: 网友投递 LinuxLinux是一 ...
- cumsum在matlab中,matlab中cumsum函数和sum函数详解
调用格式及说明 matlab中cumsum函数通常用于计算一个数组各行的累加值.在matlab的命令窗口中输入doc cumsum或者help cumsum即可获得该函数的帮助信息. 调用格式及说明 ...
- 矩阵在Matlab中应用规则,1.3 MATLAB中的矩阵运算免费阅读_详解MATLAB在最优化计算中的应用免费全文_百度阅读...
4.6 线性规划问题的MATLAB求解方法 与一般的线性规划理论一样,在MATLAB中有线性规划的标准型,和前面介绍的一般标准型有类似之处,也有不同之处.在调用MATLAB线性规划函数linprog时 ...
- matlab stem函数坐标轴_在MATLAB中可以设置坐标轴的函数详解
1.绘制二维曲线的最基本函数plot 2.双纵坐标函数plotyy 3. 坐标控制 函数的调用格式为: axis([xmin xmax ymin ymax zmin zmax]) axis函数功能丰富 ...
- Docker配置Dockerfile中关键ENTRYPOINT和CMD命令详解
一.dockerfile中的 CMD 1.每个dockerfile中只能有一个CMD如果有多个那么只执行最后一个. 2.CMD 相当于启动docker时候后面添加的参数看,举个简单例子: docker ...
- 手机中的SIM卡网络命令详解 - USSD代码
手机中的SIM网络命令, 相当于电脑的cmd或linux中的网络命令行, 可以实现丰富多样的功能.在手机的拨号界面输入以下指令, 就可以实现这些功能. 目录 呼叫转移设置 转接所有来电 无人接听时转接 ...
- Linux中Crontab(定时任务)命令详解及使用教程
Crontab介绍: Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"cr ...
最新文章
- openssl+poly1305+sm4实现
- 高通---GPUCPU频率和工作模式的获取设置
- IO多路复用 select、poll、epoll
- vivo9.0系统设备最简单激活XPOSED框架的步骤
- PL/SQL编程基本概念
- 编程中的蛇形填空问题_PCB—蛇形线的作用,这次真的是把你搞懂了
- 福大软工1816 · 第一次作业 - 准备
- 成功与不成功并非智商差别:男人,如何唤醒心灵的巨人
- 2019款iPhone XR新配色机模上手:就是这个味儿
- Ripple(Glance)
- switchhost 提示没有权限
- 基于matlab人脸识别论文,基于matlab的人脸识别系统设计 毕业论文
- Quartus 软内核NIOS II 入门指导
- 比较横截面与时间序列的因子模型
- RabbitMQ3.10.7高级特性
- mysql有to char函数吗_mysql 类似to_char() to_date()函数
- Excel统一添加前缀与后缀
- 学成在线 第4天 讲义-页面静态化 页面预览
- 【算法】独立任务最优调度问题
- 如何远程控制另外一台电脑
热门文章
- IDEA 点击进入方法内部_Idea中,听说会了Debug,你就离大佬不远了!
- android 放大镜动画,Android在图片上进行放大镜效果(放大镜形状)
- mysql启动失败2005_数据库2005服务启动不了
- 当下,所有工程师都要具备技术变现思考和能力【赢在CSDN】
- 微软符号服务器opencv的符号,Opencv Mat类详解和用法1
- JDK8 Stream 操作
- db h2 数据类型_H2数据库函数及数据类型概述-阿里云开发者社区
- python 使用整数编码字符串的值
- django Form表单验证
- 定期存款可以提前取出来吗_定期存款、约定转存、自动转存和自己取出来转存有什么不同?...