通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。 
   tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。
    带有最常用选项的tr命令格式为:

tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"] < input-file

这里:
-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。

2、字符范围
指定字符串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

实例:

1、将文件file中出现的"abc"替换为"xyz"

# cat file | tr "abc" "xyz" > new_file

【注意】这里,凡是在file中出现的"a"字母,都替换成"x"字母,"b"字母替换为"y"字母,"c"字母替换为"z"字母。而不是将字符串"abc"替换为字符串"xyz"。

2、使用tr命令“统一”字母大小写

(小写 --> 大写)
# cat file | tr [a-z] [A-Z] > new_file

(大写 --> 小写)
# cat file | tr [A-Z] [a-z] > new_file

3、把文件中的数字0-9替换为a-j

# cat file | tr [0-9] [a-j] > new_file

4、删除文件file中出现的"Snail"字符

# cat file | tr -d "Snail" > new_file

【注意】这里,凡是在file文件中出现的'S','n','a','i','l'字符都会被删除!而不是紧紧删除出现的"Snail”字符串。

5、删除文件file中出现的换行'\n'、制表'\t'字符

# cat file | tr -d "\n\t" > new_file

不可见字符都得用转义字符来表示的,这个都是统一的。

6、删除“连续着的”重复字母,只保留第一个

# cat file | tr -s [a-zA-Z] > new_file

7、删除空行

# cat file | tr -s "\n" > new_file

8、删除Windows文件“造成”的'^M'字符

# cat file | tr -d "\r" > new_file
或者
# cat file | tr -s "\r" "\n" > new_file

【注意】这里-s后面是两个参数"\r"和"\n",用后者替换前者

9、用空格符\040替换制表符\011

# cat file | tr -s "\011" "\040" > new_file

10、把路径变量中的冒号":",替换成换行符"\n"

# echo $PATH | tr -s ":" "\n"

linux之tr命令详解相关推荐

  1. linux shell tr命令,linux shell tr命令详解

    tr命令是linux下的一个命令,那么它的语法和用途是什么呢?下面由学习啦小编为大家整理了linux shell tr命令的相关知识,希望大家喜欢! linux shell tr命令 tr是trans ...

  2. Linux:tr命令详解

    tr tr命令可以对来自标准输入的字符进行替换.压缩和删除 语法 tr(选项)(SET1 SET2) 选项 -c或--complerment:取代所有不属于第一字符集的字符:-d或--delete:删 ...

  3. 服务器维护详解,服务器维护Linux tr 命令详解

    服务器维护Linux tr 命令详解 tr 是 Linux 和 Unix 系统中的命令行实用程序,用于转换,删除和挤压标准输入中的字符,并将结果写入标准输出. 该 tr 命令通常通过管道与其他命令结合 ...

  4. linux cat命令缩写,linux下cat命令详解

    cat 能够一同显现多个文件的内容,比方咱们能够在一个cat指令上一同显现两个文件的内容;那么你知道linux下cat命令详解么?接下来是小编为大家收集的linux下cat命令详解,欢迎大家阅读: l ...

  5. Linux中iptraf命令详解(IP局域网监控工具)

    2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03   作者:佚名    ...

  6. linux ln(link) 命令详解

    linux ln(link) 命令详解 功能说明:连接文件或目录. 语 法:ln [-bdfinsv][-S <字尾备份字符串>][-V <备份方式>][--help][--v ...

  7. [老男孩笔记系列]-之linux定时任务crontab命令详解

    linux定时任务crontab命令详解 1.1指令语法 crontab [ -u user ] file crontab [ -u user ] { -l | -r | -e } 1.2指令说明 通 ...

  8. linux rm(remove) 命令详解

    linux rm(remove) 命令详解 功能说明:删除文件或目录. 语 法:rm [-dfirv][--help][--version][文件或目录...] 补充说明:执行rm指令可删除文件或目录 ...

  9. linux下dd命令详解

    linux下dd命令详解    名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option] 如果 ...

最新文章

  1. LeetCode 225. Implement Stack using Queues--用队列实现栈--C++解法
  2. 任务简介(Query Performance Prediction)
  3. 递归系列之一_南诺塔问题
  4. react 引入html文件_React起手式
  5. adonis.js mysql_Adonis.js——数据库基本操作
  6. access ole 对象 最大长度_Redis 数据结构和对象系统,有这 12 张图就够了!
  7. Netty自娱自乐之协议栈设计
  8. SDN精华问答 | SDN的核心技术是什么?
  9. css中的换行符_如何使用CSS防止项目列表中的换行符?
  10. 软件测试--cookie学习
  11. FreeRTOS内核实现06:任务延时列表
  12. 【Java每日一题】20161019
  13. java取得泛型,Java取得泛型类型
  14. Oracle中查看所有的表,用户表,列名,主键,外键
  15. 12038徐波:PMBOK考试:如何压缩时间赶工和快速跟进考点汇总
  16. jdk16新特性_jdk8到jdk16新特性
  17. DWORD WINAPI
  18. Google-APAC2015-Password Attacker
  19. AI挖掘优质淘宝买家秀 再也不用担心辣眼睛了
  20. 空字符串和len()函数

热门文章

  1. 浪潮的加班标语炸了,这是顶风作案?网传:1月加班87小时还要扣工资?
  2. 这个开源项目...看了就停不下来啊!
  3. 每日一皮​:昨天晚上下班回家,一民警迎面巡逻而来。 突然对我大喊:站住!...
  4. 这些用来审计 Kubernetes RBAC 策略的方法你都见过吗?
  5. 追踪JVM中的本地内存
  6. Logback中使用TurboFilter实现日志级别等内容的动态修改
  7. 理解C语言中指针的声明以及复杂声明的语法
  8. json中怎么去掉[]外的引号_SEO优化中怎么做站内和站外的锚文本
  9. cannot import name ‘softmax‘ from ‘scipy.special‘
  10. win10子系统ubuntu root用户