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)相关推荐

  1. 学linux作用,linux有必要学吗?学linux有什么作用,学linux能干什么

    Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到win ...

  2. LINUX学习之路(学LINUX必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段.下来我将会结 ...

  3. linux学习需要什么基础,学linux需要什么基础?

    近几年来,随着计算机网络的发展,越来越多的人学习 linux.对于想要从事运维工作或者从事智能开发方面的同学来说,学习 linux 是必要的.linux 的学习并不简单,那么这篇文章 w3cschoo ...

  4. 分享--linux 学习之路(学linux必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...

  5. 英语不好学linux运维难吗,学Linux系统难吗?学好Linux运维需要多久

    随着近年来经济的快速发展,企业对Linux人才的需求也越来越高.许多人认为,Linux是一个非常简单的行业,然而,Linux行业是一个综合了云计算.Linux运维.Linux开发.Linux编程等多方 ...

  6. 不会linux的php难找工作,学linux系统难吗

    这是 Linux初学者经常会问的问题,其实Linux和Windows一样都属于操作系统,对于大部分人来说,对Windows操作系统十分熟悉,而对Linux操作系统没有使用过,所以觉得很难,其实,只要熟 ...

  7. linux lamp实验报告,新手学Linux--构建lamp

    本人前不久开始学习Linux,俗话说得好,好记性不如烂笔头,于是决定将平日所学所做实验,记录下来,以备回顾.由于本人是个初学者,所以借鉴了很多网上的资料,但在此处写出来的都是经过本人思考和多次实验的记 ...

  8. Linux其实没那么难学

    互联网技术总是更新迭代的,因为2020年的一场疫情,影响着中国乃至整个世界,就在这一年,网络直播,远程办公,在线教育等等的互联网产物进入了众多人的世界,当然,这其中离不开程序员的功劳. 李开复曾经说过 ...

  9. 大学生为什么要学Linux?Linux有什么优点?

    前言 Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到 ...

最新文章

  1. 让我们定义一个ggplot版本的华夫饼图吧
  2. 《数学之美》第24章 马尔可夫链的扩展--贝叶斯网络
  3. 查询表空间是否是设置了自增
  4. 3个月300个VR“体验馆”?张近东这句大话靠谱么?
  5. python面试常见问题-10个Python面试常问的问题
  6. Altium designer快捷键汇总
  7. C语言实用算法系列之冒泡排序、sizeof与strlen的区别
  8. 手把手教你爬虫requests实战演练——python篇
  9. 打开c语言运行不了_C语言——菜鸟和大神的分水岭:内存、线程、进程
  10. pdf转html插件~~~pdf2htmlEX安装,配置及使用
  11. ILSpy反编译工具的使用
  12. php调用文章至首页,WP如何在首页调用分类文章列表的详细教程
  13. SDUT 2482 二叉排序树
  14. java 安祿山,夏天吃生菜最清爽,生菜上澆點蠔油,做法簡單,卻好吃到不行,換成肉還跟我生氣!...
  15. android webview同步,android httpclient与webview cookie同步
  16. 生信搬运工-02-sra文件的下载
  17. Mybatis阶段常用单词
  18. SPI DMA 通信配置
  19. 亲属卡额度是什么意思_卡神养卡15条心得!教你如何卡奴变卡神!
  20. 霹雳火s毕老师_$_Java笔记(一)

热门文章

  1. gVIM+ctags+Taglist+winmanager搭建IDE
  2. (整理)ubuntu10.10安装低版本的编译器(低版本)(gcc)(ubuntu)
  3. try catch对异常进行输出到日志、_java安全编码指南之:异常处理
  4. C语言程序练习- L1-010 比较大小 (10分)
  5. linux远程hadoop,远程调试Hadoop
  6. AMD、CMD、CommonJS、ES6(import/export)
  7. linux tomcat apr安装,Linux下Tomcat安装并开启APR模式-Go语言中文社区
  8. mysql启用组提交变量_MySQL的COMMIT_ORDER模式下组提交分组实现与BUG案例源码剖析...
  9. 《大型网站技术架构》5、6、7章阅读笔记
  10. LSTM里的dropout