当前位置: 首页 > 编程日记 > 正文

理解linux tr命令

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1. tr 命令的功能
tr命名是简化了的sed命令。其主要的功能包括:
a. 用一个字符来替换另外一个字符。
b. 删除字符串中的指定子串。
c. 合并字符串中重复串。

2. 常见的命令格式:
tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。
指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。
[a-z] a-z内的字符组成的字符串。
[A-Z] A-Z内的字符组成的字符串。
[0-9] 数字串。
\octal 一个三位的八进制数,对应有效的ASCII字符。
[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
tr中特定控制字符的不同表达方式
速记符含义八进制方式
\a Ctrl-G  铃声\007
\b Ctrl-H  退格符\010
\f Ctrl-L  走行换页\014
\n Ctrl-J  新行\012
\r Ctrl-M  回车\015
\t Ctrl-I  tab键\011
\v Ctrl-X  \030

3. 举例说明
a. 合并字符串中重复出现的字符
   tr -s "[\n]" < input.txt    #文件input.txt中的所有重复出现的换行符最多只出现一次。
   echo aaaabbbbccccddddddd | tr -s "[a-z]"    #输出abcd
b. 删除字符串中得字符
   echo helloworld | tr -d "o"  #输出hellwrld
   注意echo helloworld | tr -d "hello"的输出结果是wrd,因此tr是将字符串1的各个字符串单独处理的
c. 字符串的替换
   假设input.txt中内容是a:b:c:d:e,那么运行tr -s "[:]" "[\t]" < input.txt的结果将是a  b  c  d,各个子串间以tab隔开。同样的出现在字符串1和字符串2中的字符都是单个处理的,并不是将之看成是一个整体。
   在vi中也能使用tr命令,但在该命令前要加上要处理的行范围和!,例如1,$!tr -s "[\r]" "[\n]" ($表示最后一行)

转载于:https://my.oschina.net/idiotsky/blog/228636

相关文章:

Lambda中的常用sql方法

1、Groupby 对集合进行分组&#xff0c;如&#xff1a; var dllList _menuMan.Load(c > c.TXT_ASSEMBLYNAME ! null).GroupBy(c>c.TXT_ASSEMBLYNAME).OrderByDescending(c>c.Count()).Select(c>c.Key).ToList(); 这里Goupby后面的OrderByDescending表示对每组数量…

刚发现的 Wi-Fi 安全漏洞,可能危及全球所有设备!

作者 | Carol出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;近日&#xff0c;纽约大学阿布扎比分校的安全研究员 Mathy Vanhoef &#xff08;马蒂范霍夫&#xff09;发现了一组可能会影响到数百万设备的 Wi-Fi漏洞。可怕的是&#xff0c;其中部分漏洞甚至可以追溯…

linux + ffmpeg + eclipse 调试

使用linux ffmpeg eclipse调试步骤OS : ubuntu 12.04Eclipse : 3.7.2 为Eclipse安装cdt插件&#xff0c;使其支持c/c导入ffmpeg项目File —-> Import —-> c / c —-> Existing Code as Makefile Project 输入 Project Name, 选择ffmpeg所在目录, Toolchain选择Linu…

在ASP.NET 2.0中使用样式、主题和皮肤

ASP.NET 2.0的主题和皮肤特性使你能够把样式和布局信息存放到一组独立的文件中&#xff0c;总称为主题&#xff08;Theme&#xff09;。接下来我们可以把这个主题应用到任何站点&#xff0c;用于改变该站点内的页面和控件的外观和感觉。通过改变主题的内容&#xff0c;而不用改…

C# 引用类型和值类型

1、引用类型 FCL(Framework)中的大多数类型都是引用类型,引用类型总是在托管堆中分配的,C#的new操作符会返回对象的内存地址,也就是指对象数据的内存地址。在使用引用类型时,存在以下性能问题,这是我们在开发中必须要注意的: a、内存必须从托管堆上分配(也就是说每new一个对象,…

dom4j读写xml文件

dom4j读写xml文件首先我们给出一段示例程序&#xff1a;import java.io.File;import java.io.FileWriter;import java.util.Iterator;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j…

图片、文件防盗链

关于图片盗链这个问题&#xff0c;毕竟是自己的劳动成功&#xff0c;很多人不希望别人就那么轻易地偷走了。 这个功能在很多的论坛上都具有&#xff0c;可能是因为盗链的行为太多了吧反盗链的程序其实很简单&#xff0c;熟悉ASP.NET 应用程序生命周期的话很容易就可以写一个&am…

脚本征集大赛开启啦!100%有奖!

对一个程序爱好者来说&#xff0c;最酷的事情莫非就是用你喜欢的语言一步步实现你的idea&#xff0c; 现在用 CSDN 浏览器助手插件&#xff0c; 不仅能提升浏览器效率&#xff0c;还能在上面开发黑科技脚本&#xff0c;帮助你实现各种 idea~

深入理解javascript中的立即执行函数(function(){…})()

2019独角兽企业重金招聘Python工程师标准>>> javascript和其他编程语言相比比较随意&#xff0c;所以javascript代码中充满各种奇葩的写法&#xff0c;有时雾里看花&#xff0c;当然&#xff0c;能理解各型各色的写法也是对javascript语言特性更进一步的深入理解。 …

Javascript学习7 - 脚本化浏览器窗口

原文:Javascript学习7 - 脚本化浏览器窗口本节讨论了文档对象模型、客户端Javascript下Window中的各项属性&#xff0c;包括计时器、Location对象、Histroy对象、窗口、浏览器等相关属性的讨论。 具体详细Window属性介绍可以参见&#xff1a;http://www.w3school.com.cn/htm…

ASP.Net 2.0 发送邮件的代码

这两天因为要做一个可以收集用户提交信息&#xff0c;然后发送邮件到指定邮箱的网页。在 asp.net 2.0 里面发送邮件可以使用 System.Net.Mail 下面的类。http://www.systemnetmail.com/faq/2.1.aspx 这个地址有 System.Net.Mail 的作者写的仿佛是 MSDN 类似的 Faq&#xff0c;看…

腾讯To B业务架构再升级,汤道生任云与智慧产业事业群CEO

5月14日&#xff0c;腾讯云与智慧产业事业群&#xff08;CSIG&#xff09;宣布新一轮架构升级&#xff0c;这是继2018年“930变革”后&#xff0c;腾讯To B业务的又一次重大进化。 在本轮战略升级中&#xff0c;腾讯公司高级执行副总裁汤道生担任云与智慧产业事业群CEO&#x…

一篇文章读懂阿里云负载均衡性能保障型实例

1. 什么是负载均衡性能保障型实例?2. 性能保障型实例如何收费&#xff1f;3. 性能保障型实例规格费的定价4. 如何选择性能保障型实例&#xff1f;5. 性能保障型实例的变配操作限制6. 性能保障型实例何时收费&#xff1f;7. 收费后性能共享型实例会收费吗&#xff1f;8. 为何有…

POJ 2135 Farm Tour 最小费用流

两条路不能有重边&#xff0c;既每条边的容量是1。求流量为2的最小费用即可。 //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<iostre…

Linux动态库和静态库比较

Linux动态库和静态库比较文件预览 文件目录树如下&#xff0c;如你所见&#xff0c;非常简单。 1. libtest/ 2. |-- lt.c 3. |-- lt.h 4. -- test.c #lt.c 1. 4. 5. #include 6. 7. void myprint(void) 8. { 9. printf("Linux librar…

“一键”部署分布式训练,微软“群策MARO”上新集群管理助手

作者 | 李开琪、王金予 编者按&#xff1a;2020年&#xff0c;微软亚洲研究院发布并开源了多智能体资源优化平台“群策MARO”。为了帮助不同需求的用户进行更加便捷、高效的集群管理&#xff0c;也希望用户可以方便快捷地部署分布式训练任务&#xff0c;微软亚洲研究院的研究员…

1968年12月9日,恩格尔巴特公开演示了世界上第一个鼠标盒子

鼠标之父”道格拉斯恩格尔巴特 腾讯科技讯&#xff0c;肖华2013年12月19日编译 计算机的几次革命和大规模普及都是始于人机交互的改变&#xff0c;今年7月2日&#xff0c;“鼠标之父”道格拉斯恩格尔巴特溘然辞世。人们才发现&#xff0c;他的发明远不止鼠标。作为人机交互的先…

GPT-3模型为何难以复现?这也许是分布式AI框架的最优设计

作者 | 成诚头图 | 下载于视觉中国2020 年&#xff0c;最轰动的 AI 新闻莫过于 OpenAI 发布的 GPT-3 了。它的1750亿参数量及其在众多NLP任务上超过人类的出众表现让大家坚信&#xff1a;大模型才是未来。但与之带来的问题是&#xff0c;训练超大模型所需的算力、存储已不再是单…

c#中什么情况下用(int)什么情况下用Convert.ToInt32

1.c#中什么情况下用(int)什么情况下用Convert.ToInt32 ? 比如说有一个string型的3 ,要给它转换成int型的是用(int)3 ,还是用Convert.ToInt32(3); 还是两个都可以用&#xff0c;为什么&#xff1f; 解答&#xff1a;这两个都是转换成整型的&#xff0c;只是它们的长度不同。…

困扰多日的C#调用Haskell问题竟然是Windows的一个坑

最近一直被C#调用Haskell时的“尝试读取或写入受保护的内存”问题所困扰&#xff08;详见C#调用haskell遭遇Attempted to read or write protected memory&#xff0c;C#调用haskell时的“尝试读取或写入受保护的内存”问题&#xff09;&#xff0c;而且困在其中&#xff0c;越…

“移花接木”偷换广告:HTTPS劫匪木马每天打劫200万次网络访问

本文讲的是“移花接木”偷换广告&#xff1a;HTTPS劫匪木马每天打劫200万次网络访问&#xff0c;近年来&#xff0c;国内各大网站逐渐升级为HTTPS加密连接&#xff0c;以防止网站内容被篡改、用户数据被监听。但是一向被认为“安全可靠”的HTTPS加密传输&#xff0c;其实也可以…

Oracle之sqlpluse显示格式

SQL> show linesize; #设置每行显示的字符数 linesize 10000 SQL> show pagesize; #设置每页显示的行数 pagesize 1000 SQL> set linesize 100; SQL> set pagesize 300; SQL> show linesize; linesize 100 SQL> show pagesize; pagesize 300 col 列名 for …

ASP.Net中利用CSS实现多界面两法

通过使页面动态加载不同CSS实现多界面 方法一: <%page language"C#"%> <%import namespace"System.Data"%> <script language"c#" runat"server"> public void page_load(Object obj,EventArgs e) { //创建服务器…

面试90%都会翻车的高可用+高并发+负载均衡架构设计 !

很多人面试的时候被问到一个让人特别手足无措的问题&#xff1a;你的系统如何支撑高并发&#xff1f;对于一个公司而言&#xff0c;“为什么要高可用”关于负载均衡架构设计你了解多少&#xff1f;大多数同学被问到这个问题压根儿没什么思路去回答&#xff0c;不知道从什么地方…

Linux 如何通过命令查看一个文件的某几行(中间几行或最后几行)

linux 如何显示一个文件的某几行(中间几行) 【一】从第3000行开始&#xff0c;显示1000行。即显示3000~3999行 cat filename | tail -n 3000 | head -n 1000 【二】显示1000行到3000行 cat filename | head -n 3000 | tail -n 1000 *注意两种方法的顺序 分解&#xff1a; tail …

PHP更新数据库记录

//更新记录$query"insert into chinachaodai (name,theindex)values (公司,1)";$result$mysqli->query($query);if($result){ echo ("返回行数:".$mysqli->affected_rows);}else{ echo("失败了");}$mysqli->close();

MySQL 用户与授权管理详解

大纲一、前言二、创建用户并授权三、GRANT语句的种类四、撤权并删除用户一、前言做为Mysql数据库管理员管理用户账户&#xff0c;是一件很重要的事&#xff0c;指出哪个用户可以连接服务器&#xff0c;从哪里连接&#xff0c;连接后能做什么。Mysql从3.22.11开始引入两个语句来…

聚焦联机交易分析一体化,巨杉数据库湖仓一体云产品全线升级

2021年5月15日&#xff0c;领先的金融级分布式数据库厂商 SequoiaDB巨杉数据库 举行了2021年春季发布会。在本次发布会中&#xff0c;巨杉数据库基于「湖仓一体」架构&#xff0c;针对不同的业务需求场景细分出全新的产品线。同时进行了最新的SequoiaDB Cloud数据库云平台操作演…

css :after或:before写小三角形

2019独角兽企业重金招聘Python工程师标准>>> .type_form_tab:after {content: ;position: relative;border: 0.3rem solid #d8d8d8;border-color: #d8d8d8 transparent transparent;width: 0;height: 0;top: 0.7rem;left: 0.3rem; }转载于:https://my.oschina.net/d…

C#调用windows api的要点

在.Net Framework SDK文档中&#xff0c;关于调用Windows API的指示比较零散&#xff0c;并且其中稍全面一点的是针对Visual Basic .net讲述的。本文将C#中调用API的要点汇集如下&#xff0c;希望给未在C#中使用过API的朋友一点帮助。另外如果安装了Visual Studio .net的话&…