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示例)

