tr命令
tr命令是linux下一个字符处理命令,用途:
字符替换
字符删除
字符压缩
形式:tr [OPTION]... SET1 [SET2]
接口:输入输出都是标准流,所以要通过管道来调用这个命令
参数:
-c 对SET1取补集,在进行一切操作之前,对SET1取补集.
-d 删除SET1中的全部字符,不进行字符替换
-s 压缩重复字符,例如wweeedd压缩之后变成wed
-t 对SET1进行截断,使之与SET2等长
字符删除和字符替换两个功能不可共用,只能选择其一来用(字符替换只发生在没有-d参数且SET1和SET2都出现时).字符压缩和字符删除可以共用,字符压缩和字符替换可以共用.
-t只能用于字符替换.进行字符替换时,如果SET2偏长,那就截断到与SET1等长;如果偏短,那就重复SET2的最后一个字符,直到与SET1等长.
用-s压缩重复字符时,如果没使用删除字符和替换字符这两个功能,那就用SET1来压缩.否则,先进行删除或者替换,然后按照SET2进行压缩字符.
-c和-t这两个命令就是对SET1进行一下处理.
例子:
x='1212334341223'
echo $x | tr 1234 abcd 把1转换成a,把2转换成b,把3转换成c,把4转换成d
字符集的表示方法
支持转义:\NNN(3位八进制表示ascii码),c语言里面的转义基本都支持,如响铃\a,退格\b,换行\n,回车\r,制表\t\v.
CHAR1-CHAR2:从CHAR1到CHAR2之间的全部字符
预定义的表示方法
[:alnum:]字母集+数字集
[:alpha:]字母集,[:upper:]和[:lower:]大小写字符集
[:digit:]数字集,[:xdigit:]十六进制字符集
[:blank:]水平空字符集,[:space:]水平空字符集+竖直空字符集
[:cntrl:]控制字符集
[:print:]一切可打印的字符,[:graph:]除空格外的全部可打印字符
[:punct:]符号集
tr命令的更多相关文章
- Linux tr命令
介绍 tr命令可以对来自标准输入的字符进行替换.压缩和删除.tr只能接收来自标准的输入流,不能接收参数. 语法 tr [OPTION]... SET1 [SET2] 注意:SET2是可选项 OPTIO ...
- linux sort,uniq,cut,wc,tr命令详解
sort是在Linux里非常常用的一个命令,对指定文件进行排序.去除重复的行 sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sor ...
- linux tr命令详解
通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您也可以用它来除去重复 ...
- tr 命令 操作字符串中字符 删除替换 等
ip=$(cat ${path}initOauth/initinfo.txt |awk '{if(NR==1)print $0;}'|tr -d '\r'); tr命令可以对来自标准输入的字符进行替换 ...
- 《tr命令-优化版》-linux命令五分钟系列之二十五
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...
- 《tr命令》-linux命令五分钟系列之六
本原创文章属于<Linux大棚>博客. 博客地址为http://roclinux.cn. 文章作者为roc 希望您能通过捐款的方式支持Linux大棚博客的运行和发展.请见“关于捐款” == ...
- tr命令的使用
tr是translate的简写,亦即翻译,但是遗憾的是,它不能翻译句子,只能翻译单个字符. 1 tr的工作原理是什么? 先记住一点,tr命令不接受指定的文件参数,而只是对标准输入进行翻译.好了,记住这 ...
- Linux tr 命令使用
man tr: TR(1) User Commands TR(1) NAME tr - translate or delete characters SYNOPSIS tr [OPTION]... S ...
- linux的tr命令
tr(translate缩写)主要用于删除文件中的控制字符,或进行字符转换. 语法 tr [ -c | -cds | -cs | -C | -Cds | -Cs | -ds | -s] [ -A] S ...
随机推荐
- android widget包说明与应用
widget包是存放自定义组件 开发自定义组件: 其实Android API开发指南中的App Widgets章节 已经说得很清楚了,下面只是对自己的理解进行一次梳理. -- AppWidget 就是 ...
- setTimeout()与setInterval()——走马灯效果
JavaScript中的setTimeout()与setInterval()都是指延时执行某一操作. 但setInterval()指每隔指定时间执行某操作,会循环不断地执行该操作:setTimeout ...
- CDN下nginx获取用户真实IP地址
随着nginx的迅速崛起,越来越多公司将apache更换成nginx. 同时也越来越多人使用nginx作为负载均衡, 并且代理前面可能还加上了CDN加速,但是随之也遇到一个问题:nginx如何获取用户 ...
- [转]C#网络编程(基本概念和操作) - Part.1
本文转自:http://www.tracefact.net/CSharp-Programming/Network-Programming-Part1.aspx 引言 C#网络编程系列文章计划简单地讲述 ...
- ac自动机 模板
自己写的0.0 #include <queue> #include <cstring> #include <cstdio> using namespace std; ...
- java变量的初始化
public class Init { private int age;//非静态初始化语句<3> private static String name; //静态初始化语句,先初始化静态 ...
- 第18章 图元文件_18.2 增强型图元文件(emf)(1)
18.2 增强型图元文件(emf) 18.2.1 创建并显示增强型图元文件的步骤 (1)创建:hdcEMF = CreateEnhMetaFile(hdcRef,szFilename,lpRect,l ...
- 第六章、Struts2数据校验
一.三种实现方式 ① 用validate()方法实现数据校验 继承ActionSupport类,该类实现了Validateable接口,该接口中定义了一个validate()方法,在自定义的Actio ...
- Windows 运行时组件
Windows 运行时组件是自包含对象,可将其实例化,并可采用任一语言使用它,包括 C#.Visual Basic.JavaScript 和 C++. 你可以使用 Visual Studio 和 C# ...
- ORCHARD 是什么?
官网 http://orchard.codeplex.com 教程 http://www.cnblogs.com/sunjunlin/p/3876693.html [翻译]从头开始编写一个Orchar ...