Linux shell tr 命令详解

发布时间 - 2026-01-10 22:43:11    点击率:

Linux shell tr 命令详解

1. 用途

tr,translate的简写,主要用于压缩重复字符,删除文件中的控制字符以及进行字符转换操作。

2. 语法

tr [OPTION]... SET1 [SET2]

3. 参数

3.1 -s 压缩重复字符

-s: squeeze-repeats,用SET1指定的字符来替换对应的重复字符 (replace each input sequence of  a  repeated  character  that  is listed in SET1 with a single occurrence of that character)

xiaosi@Qunar:~/test$ echo "aaabbbaacccfddd" | tr -s [abcdf] // abacfd

可以使用这一特点,删除文件中的空白行,实质上跟上面一样,都是用SET1指定的字符来替换对应的重复字符

xiaosi@Qunar:~/test$ cat b.txt
I like football
Football is very fun!
Hello
xiaosi@Qunar:~/test$ cat b.txt | tr -s ["\n"]
I like football
Football is very fun!
Hello

3.2 -d 删除字符

-d:delete,删除SET1中指定的所有字符,不转换(delete characters in SET1, do not translate)

xiaosi@Qunar:~/test$ echo "a12HJ13fdaADff" | tr -d "[a-z][A-Z]"
1213
xiaosi@Qunar:~/test$ echo "a1213fdasf" | tr -d [adfs]
1213

3.3 字符替换

-t:truncate,将SET1中字符用SET2对应位置的字符进行替换,一般缺省为-t

xiaosi@Qunar:~/test$ echo "a1213fdasf" | tr -t [afd] [AFO] // A1213FOAsF

上述代码将a转换为A,f转换为F,d转换为O。

可以利用这一特点,实现大小字母的转换

xiaosi@Qunar:~/test$ echo "Hello World I Love You" |tr -t [a-z] [A-Z]
HELLO WORLD I LOVE YOU
xiaosi@Qunar:~/test$ echo "HELLO WORLD I LOVE YOU" |tr -t [A-Z] [a-z]
hello world i love you

也可以利用字符集合进行转换

xiaosi@Qunar:~/test$ echo "Hello World I Love You" |tr -t [:lower:] [:upper:]
HELLO WORLD I LOVE YOU
xiaosi@Qunar:~/test$ echo "HELLO WORLD I LOVE YOU" |tr -t [:upper:] [:lower:]
hello world i love you

备注:

字符集合如下

\NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)
\\ 反斜杠
\a Ctrl-G 铃声
\b Ctrl-H 退格符
\f Ctrl-L 走行换页
\n Ctrl-J 新行
\r Ctrl-M 回车
\t Ctrl-I tab键
\v Ctrl-X 水平制表符
CHAR1-CHAR2 从CHAR1 到 CHAR2的所有字符按照ASCII字符的顺序
[CHAR*] in SET2, copies of CHAR until length of SET1
[CHAR*REPEAT] REPEAT copies of CHAR, REPEAT octal if starting with 0
[:alnum:] 所有的字母和数字
[:alpha:] 所有字母
[:blank:] 水平制表符,空白等
[:cntrl:] 所有控制字符
[:digit:] 所有的数字
[:graph:] 所有可打印字符,不包括空格
[:lower:] 所有的小写字符
[:print:] 所有可打印字符,包括空格
[:punct:] 所有的标点字符
[:space:] 所有的横向或纵向的空白
[:upper:] 所有大写字母

3.4 字符补集替换

-c:complement,用SET2替换SET1中没有包含的字符

xiaosi@Qunar:~/test$ cat a.txt
Monday   09:00
Tuesday  09:10
Wednesday 10:11
Thursday  11:30
Friday   08:00
Saturday  07:40
Sunday   10:00
xiaosi@Qunar:~/test$ cat a.txt | tr -c "[a-z][A-Z]" "#" | tr -s "#" | tr -t "#" "\n"
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

上面代码中 tr -c "[a-z][A-Z]" "#" 表示将除大小字母以外的所有的字符都替换为#。

上面代码可优化为:

xiaosi@Qunar:~/test$ cat a.txt | tr -cs "[a-z][A-Z]" "\n"
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

感谢阅读,希望嫩帮助到大家,谢谢大家对本站的支持!


# Linux  # shell  # tr  # 命令  # 命令详细介绍  # Linux命令 sort、uniq、tr工具详解  # Linux tr命令的使用方法  # Linux traceroute命令使用详解  # Linux命令中Ctrl+z、Ctrl+c和Ctrl+d的区别和使用详解  # Trash-Cli:Linux上的命令行回收站工具  # Linux应用调试之strace命令详解  # 详解linux下tree命令的用法  # 详解linux中的strings命令简介  # 一天一个shell命令 linux文本操作系列-tree命令详解  # Linux tr命令的使用  # 转换为  # 这一  # 可以利用  # 都是  # 可以使用  # 谢谢大家  # 主要用于  # 不包括  # 实质上  # 换页  # xiaosi  # aaabbbaacccfddd  # Qunar  # abcdf  # test  # echo  # abacfd  # a12HJ13fdaADff  # characters  # adfs 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  如何挑选高效建站主机与优质域名?  Python进程池调度策略_任务分发说明【指导】  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  C++时间戳转换成日期时间的步骤和示例代码  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  nginx修改上传文件大小限制的方法  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  昵图网官方站入口 昵图网素材图库官网入口  Python高阶函数应用_函数作为参数说明【指导】  ,网页ppt怎么弄成自己的ppt?  Laravel怎么实现模型属性的自动加密  Laravel如何实现文件上传和存储?(本地与S3配置)  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  Laravel怎么在Blade中安全地输出原始HTML内容  微信小程序 canvas开发实例及注意事项  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  微信h5制作网站有哪些,免费微信H5页面制作工具?  详解Android图表 MPAndroidChart折线图  做企业网站制作流程,企业网站制作基本流程有哪些?  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  创业网站制作流程,创业网站可靠吗?  浅析上传头像示例及其注意事项  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  b2c电商网站制作流程,b2c水平综合的电商平台?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  简历在线制作网站免费版,如何创建个人简历?  详解CentOS6.5 安装 MySQL5.1.71的方法  Laravel如何为API编写文档_Laravel API文档生成与维护方法  高端云建站费用究竟需要多少预算?  制作电商网页,电商供应链怎么做?  如何在IIS7上新建站点并设置安全权限?  网站制作软件有哪些,制图软件有哪些?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  如何解决hover在ie6中的兼容性问题  进行网站优化必须要坚持的四大原则  php结合redis实现高并发下的抢购、秒杀功能的实例  Laravel如何使用Eloquent进行子查询  nodejs redis 发布订阅机制封装实现方法及实例代码  Laravel如何实现用户注册和登录?(Auth脚手架指南)  linux top下的 minerd 木马清除方法  如何续费美橙建站之星域名及服务?  制作企业网站建设方案,怎样建设一个公司网站?  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)