【Linux】一步一步学Linux——tr命令(55)
00. 目录
文章目录
- 00. 目录
- 01. 命令概述
- 02. 命令格式
- 03. 常用选项
- 04. 参考示例
- 05. 附录
01. 命令概述
tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。
tr的英文全称是“ transform ”,即转换的意思。tr他只能从标准输入中读取数据,因此,tr要么将输入文件重定向到标准输入,要么从管道读入数据。
注意:tr类似于sed命令,但是比sed简单,所以tr能实现的功能,sed都能实现。
02. 命令格式
用法:tr [选项]... SET1 [SET2]
03. 常用选项
从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。-c, -C, --complement 首先补足SET1-d, --delete 删除匹配SET1 的内容,并不作替换-s, --squeeze-repeats 如果匹配于SET1 的字符在输入序列中存在连续的重复,在替换时会被统一缩为一个字符的长度-t, --truncate-set1 先将SET1 的长度截为和SET2 相等--help 显示此帮助信息并退出--version 显示版本信息并退出SET 是一组字符串,一般都可按照字面含义理解。解析序列如下:\NNN 八进制值为NNN 的字符(1 至3 个数位)\\ 反斜杠\a 终端鸣响\b 退格\f 换页\n 换行\r 回车\t 水平制表符\v 垂直制表符字符1-字符2 从字符1 到字符2 的升序递增过程中经历的所有字符[字符*] 在SET2 中适用,指定字符会被连续复制直到吻合设置1 的长度[字符*次数] 对字符执行指定次数的复制,若次数以 0 开头则被视为八进制数[:alnum:] 所有的字母和数字[:alpha:] 所有的字母[:blank:] 所有呈水平排列的空白字符[:cntrl:] 所有的控制字符[:digit:] 所有的数字[:graph:] 所有的可打印字符,不包括空格[:lower:] 所有的小写字母[:print:] 所有的可打印字符,包括空格[:punct:] 所有的标点字符[:space:] 所有呈水平或垂直排列的空白字符[:upper:] 所有的大写字母[:xdigit:] 所有的十六进制数[=字符=] 所有和指定字符相等的字符仅在SET1 和SET2 都给出,同时没有-d 选项的时候才会进行替换。
仅在替换时才可能用到-t 选项。如果需要SET2 将被通过在末尾添加原来的末字符的方式
补充到同SET1 等长。SET2 中多余的字符将被省略。只有[:lower:] 和[:upper:]
以升序展开字符;在用于替换时的SET2 中以成对表示大小写转换。-s 作用于SET1,既不
替换也不删除,否则在替换或展开后使用SET2 缩减。
04. 参考示例
4.1 将输入字符由大写转换为小写
[deng@localhost ~]$ echo "HELLO ITCAST" | tr 'A-Z' 'a-z'
hello itcast
[deng@localhost ~]$
‘A-Z’ 和 ‘a-z’都是集合,集合是可以自己制定的,例如:‘ABD-}’、‘bB.,’、‘a-de-h’、‘a-c0-9’都属于集合,集合里可以使用’\n’、’\t’,可以可以使用其他ASCII字符。
4.2 删除出现的数字
[deng@localhost ~]$ echo "hello 1234 itcast 7890" | tr -d '0-9'
hello itcast
[deng@localhost ~]$
4.3 从输入文本中将不在补集中的所有字符删除
[deng@localhost test]$ echo aabbcc..#dd2 */dk4 | tr -d -c '0-9 \n'
2 4
[deng@localhost test]$
补集中包含了数字0~9、空格和换行符\n,所以没有被删除,其他字符全部被删除了。
4.4 将连续重复的字符以单独一个字符表示
[deng@localhost test]$ echo "helloooooooooo is heimamaaaaaaaaaa" | tr -s 'oa'
hello is heimama
[deng@localhost test]$
4.5 使用替换操作执行+操作
[deng@localhost test]$ echo 1 2 3 4 5 6 7 8 9 | xargs -n1 | echo $[ $(tr '\n' '+') 0 ]
45
[deng@localhost test]$
4.6 删除由于Windows文件造成的’^M’字符
[deng@localhost test]$ cat txt | tr -s '\r' '\n' > file
[deng@localhost test]$
或者
[deng@localhost test]$ cat txt | tr -d '\r' > file
4.7 将小写字母转换为大写字母
[deng@localhost test]$ echo "hello itcast" | tr '[:lower:]' '[:upper:]'
HELLO ITCAST
[deng@localhost test]$
4.8 将换行符替换成制表符
[deng@localhost test]$ cat txt | tr '\n' '\t'1111 1111 2222 2222 5555 [deng@localhost test]$
[deng@localhost test]$
05. 附录
参考:【Linux】一步一步学Linux系列教程汇总
【Linux】一步一步学Linux——tr命令(55)相关推荐
- 学linux作用,linux有必要学吗?学linux有什么作用,学linux能干什么
Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到win ...
- LINUX学习之路(学LINUX必看)
很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段.下来我将会结 ...
- linux学习需要什么基础,学linux需要什么基础?
近几年来,随着计算机网络的发展,越来越多的人学习 linux.对于想要从事运维工作或者从事智能开发方面的同学来说,学习 linux 是必要的.linux 的学习并不简单,那么这篇文章 w3cschoo ...
- 分享--linux 学习之路(学linux必看)
很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...
- 英语不好学linux运维难吗,学Linux系统难吗?学好Linux运维需要多久
随着近年来经济的快速发展,企业对Linux人才的需求也越来越高.许多人认为,Linux是一个非常简单的行业,然而,Linux行业是一个综合了云计算.Linux运维.Linux开发.Linux编程等多方 ...
- 不会linux的php难找工作,学linux系统难吗
这是 Linux初学者经常会问的问题,其实Linux和Windows一样都属于操作系统,对于大部分人来说,对Windows操作系统十分熟悉,而对Linux操作系统没有使用过,所以觉得很难,其实,只要熟 ...
- linux lamp实验报告,新手学Linux--构建lamp
本人前不久开始学习Linux,俗话说得好,好记性不如烂笔头,于是决定将平日所学所做实验,记录下来,以备回顾.由于本人是个初学者,所以借鉴了很多网上的资料,但在此处写出来的都是经过本人思考和多次实验的记 ...
- Linux其实没那么难学
互联网技术总是更新迭代的,因为2020年的一场疫情,影响着中国乃至整个世界,就在这一年,网络直播,远程办公,在线教育等等的互联网产物进入了众多人的世界,当然,这其中离不开程序员的功劳. 李开复曾经说过 ...
- 大学生为什么要学Linux?Linux有什么优点?
前言 Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到 ...
最新文章
- 让我们定义一个ggplot版本的华夫饼图吧
- 《数学之美》第24章 马尔可夫链的扩展--贝叶斯网络
- 查询表空间是否是设置了自增
- 3个月300个VR“体验馆”?张近东这句大话靠谱么?
- python面试常见问题-10个Python面试常问的问题
- Altium designer快捷键汇总
- C语言实用算法系列之冒泡排序、sizeof与strlen的区别
- 手把手教你爬虫requests实战演练——python篇
- 打开c语言运行不了_C语言——菜鸟和大神的分水岭:内存、线程、进程
- pdf转html插件~~~pdf2htmlEX安装,配置及使用
- ILSpy反编译工具的使用
- php调用文章至首页,WP如何在首页调用分类文章列表的详细教程
- SDUT 2482 二叉排序树
- java 安祿山,夏天吃生菜最清爽,生菜上澆點蠔油,做法簡單,卻好吃到不行,換成肉還跟我生氣!...
- android webview同步,android httpclient与webview cookie同步
- 生信搬运工-02-sra文件的下载
- Mybatis阶段常用单词
- SPI DMA 通信配置
- 亲属卡额度是什么意思_卡神养卡15条心得!教你如何卡奴变卡神!
- 霹雳火s毕老师_$_Java笔记(一)
热门文章
- gVIM+ctags+Taglist+winmanager搭建IDE
- (整理)ubuntu10.10安装低版本的编译器(低版本)(gcc)(ubuntu)
- try catch对异常进行输出到日志、_java安全编码指南之:异常处理
- C语言程序练习- L1-010 比较大小 (10分)
- linux远程hadoop,远程调试Hadoop
- AMD、CMD、CommonJS、ES6(import/export)
- linux tomcat apr安装,Linux下Tomcat安装并开启APR模式-Go语言中文社区
- mysql启用组提交变量_MySQL的COMMIT_ORDER模式下组提交分组实现与BUG案例源码剖析...
- 《大型网站技术架构》5、6、7章阅读笔记
- LSTM里的dropout