热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux系统下tr命令详解-linux运维

今天想和大家介绍下1个非常常用的命令——tr。这个命令可以用来替换字符串、删除指定字符以及将多个重复字符压缩只剩一个,除此之外,该命令是支持管道的。
今天想和大家介绍下1个非常常用的命令——tr。这个命令可以用来替换字符串、删除指定字符以及将多个重复字符压缩只剩一个,除此之外,该命令是支持管道的。从上面的功能介绍,大家应该能够感受到该命令功能非常的强大。

下面,来介绍下该命令:

tr [选项] 参数

常用选项如下:

  • -c 后接字符范围,表示除这些字符之外的字符

  • -d 删除指定字符

  • -s 将重复字符压缩只剩一个

下面通过几个案例来学习如何使用该命令

字符串替换

这个是最基本功能,没有添加任何选项时,则表示字符串替换,命令格式为:

tr 原字符串 需替换成的字符串

这里,我们还经常用到-符号,它表示连续的意思。下面来看案例:

# 字符串替换,将小写字母替换为大写字母
# echo hello,world | tr [a-z] [A-Z]
HELLO,WORLD

删除字符

通过选项-d来删除指定的字符,通过-d -c选项可以用来保留指定的字符。下面来看案例

# 删除指定字符ae
# echo 'There are apples' | tr -d 'ae'
Thr r ppls

# 删除指定字符,只保留数字和字母及换行符,其他的字符全部删除
# echo 'sSwd,aw23e;sw aswe' | tr -d -c 'a-zA-Z0-9\n'
sSwdaw23eswaswe

压缩字符

这个功能非常的常用,它可以来将连续重复的字符压缩成只留一个。我们经常用它来删除连续的空格只留一个空格,删除连续的换行符只留一个换行符。想要完成压缩字符的功能,需要使用-s选项。

# 删除连续的空格只留下一个(我们也经常删除连续的换行符只留一个)
# echo -e "hello    world.\n\n\n" | tr -s ' \n'
hello world.

上面的几个例子比较简单,可能看不出这个命令的威力,下面再来看几个稍微复杂点的案例。

我们知道,cut对于连续空格的处理不是很擅长。如果想用cut来选取df命令显示结果的第二列,是办不到的。这个时候,如果首先使用tr命令将多个连续空格压缩成一个,那么cut命令就能够来满足需要了。

# df -h | tr -s ' \t' | cut -d ' ' -f 2
Size
40G
487M
497M
497M
497M
100M

可以看到,通过tr的处理,cut现在能够获取到第二列信息了。

tr这个命令功能很强大,用法非常的简单,希望大家都能掌握并应用它。

以上就是linux系统下tr命令详解的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • CGroups: 资源管理和控制
    CGroups(Control Groups)是Linux内核提供的一个功能,旨在限制、记录和隔离进程组使用的物理资源,如CPU、内存和I/O等。它通过精细的资源管理,支持现代容器技术如Docker的资源限制需求。 ... [详细]
  • Linux 文件系统结构详解
    本文详细介绍了Linux操作系统的文件系统结构,包括其独特的树状目录体系、根目录的作用、目录与磁盘分区的关系等,并对各主要目录的功能进行了深入解析。 ... [详细]
  • Linux环境下Memcached安装指南
    本文详细介绍如何在Linux虚拟机上安装Memcached,包括必要的依赖库安装,以及使用Xshell进行文件传输的具体步骤。 ... [详细]
  • 深入解析Java中的锁类型及其应用场景
    本文详细介绍了Java中常见的锁类型,包括乐观锁与悲观锁、独占锁与共享锁、互斥锁与读写锁、可重入锁、公平锁与非公平锁、分段锁、偏向锁、轻量级锁、重量级锁以及自旋锁。每种锁的特性、作用及适用场景均有所涉及。 ... [详细]
  • 本文探讨了HDU 4035的问题,涉及一个由n个房间组成的迷宫,这些房间通过n-1条隧道相互连接,形成一棵树结构。任务是从起点1号房间出发,计算到达出口所需经过的平均隧道数量,考虑了在每个房间中可能发生的三种情况及其相应概率。 ... [详细]
  • 软件项目管理实践——Jenkins持续集成与Maven、GitHub的应用
    本文详细介绍了如何利用Jenkins实现持续集成,以及Maven和GitHub在项目开发中的具体应用。包括环境搭建、工具安装、项目创建及代码管理等关键步骤。 ... [详细]
  • 本文详细介绍了在Hive中创建表的基本语法,包括临时表、外部表的创建方法,以及如何设置表的各种属性和约束条件。 ... [详细]
  • 浩方对战平台账户注册指南
    作为一款深受学生和年轻人喜爱的游戏对战平台,浩方对战平台不仅提供了如《魔兽RPG》、《星际争霸》等经典游戏的对战环境,还是许多玩家交流技巧、结交朋友的好去处。本文将详细介绍如何轻松完成浩方对战平台的账户注册。 ... [详细]
  • InnoDB中Serializable隔离级别的实现机制
    在数据库的最高隔离级别——Serializable下,当一个事务(如事务A)正在对某一行进行修改时,任何其他试图读取或修改该行的事务(如事务B)都必须等待,直到事务A完成并释放其写锁。这一机制确保了所有操作都能以一种线性化的顺序执行,避免了并发带来的数据不一致问题。 ... [详细]
  • Kafka 示例项目中 Log4j 的配置与调试
    本文详细介绍了如何在 Kafka 源码中的示例项目配置 Log4j,以确保能够正确记录日志信息,帮助开发者更好地理解和调试代码。 ... [详细]
  • SQL注入实验:SqliLabs第38至45关解析
    本文深入探讨了SqliLabs项目中的第38至45关,重点讲解了堆叠注入(Stacked Queries)的应用技巧及防御策略。通过实际案例分析,帮助读者理解如何利用和防范此类SQL注入攻击。 ... [详细]
  • 特斯拉超级散户:坐拥631万股价值逾70亿美元
    特斯拉股价上周五收盘上涨3.43%,达到1114美元,这意味着KoGuan能够以当前价格的一半购入特斯拉股票。据透露,KoGuan持有的特斯拉股份市值已超过70亿美元。KoGuan表示,投资成功的关键在于对特斯拉CEO埃隆·马斯克的信任。 ... [详细]
  • 如何将Redis配置为后台服务
    本文介绍了在安装Redis后,如何通过修改配置文件使其以守护进程模式在后台运行,避免因控制台被占用而无法进行其他操作的问题。 ... [详细]
  • 本文深入探讨了TCC事务模型中Try阶段的具体操作流程,以及Confirm阶段的确认逻辑,旨在为开发者提供更清晰的理解。 ... [详细]
  • Node.js 开发入门:环境搭建与配置
    随着Node.js技术的日益成熟及其即将发布的1.0稳定版,越来越多的开发者开始关注并尝试这一高性能的服务器端JavaScript平台。本文将引导读者如何在Windows环境下安装配置Node.js,并介绍一些常用的开发工具和框架。 ... [详细]
author-avatar
郑云雪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有