服务器维护Linux tr 命令详解

tr 是 Linux 和 Unix 系统中的命令行实用程序,用于转换,删除和挤压标准输入中的字符,并将结果写入标准输出。

该 tr 命令通常通过管道与其他命令结合使用,可以执行删除重复字符,将大写转换为小写,以及替换和删除基本字符等操作。

在本教程中,我们将向您展示如何 tr 通过实际示例和最常见选项的详细说明来使用该命令。

服务器维护小知识如何使用 Tr 命令

该 tr 命令的语法如下:tr OPTION... SET1 [SET2]

tr  接受两组字符,通常具有相同的长度,并用第二组中的相应字符替换第一组的字符。

一个 SET 就是一串字符,包括特殊的反斜杠转义字符。

在下面的示例中, tr 将 linuxidc 通过将第一个集合中的字符与第二个集合中的匹配元素进行映射来替换标准输入中的所有字符。

linuxidc@linuxidc:~/www.linuxidc.com$ echo 'linuxidc' | tr 'lin' 'red'

tr 将使用 r 替换 l ,使用 e 替换 i 和 d 替换 n 。

reduxedc

还可以使用字符范围定义字符集。例如:

linuxidc@linuxidc:~/www.linuxidc.com$ echo 'linuxidc' | tr 'lmno' 'wxyz'

wiyuxidc

您可以使用:

linuxidc@linuxidc:~/www.linuxidc.com$ echo 'linuxidc' | tr 'l-n' 'w-z'

wiyuxidc

当使用 -c(--complement) 选项时, tr 将替换不在 SET1 中的所有字符。

在下面的示例中, SET1 中不包含的所有字符将替换为 SET2 中的最后一个字符:echo 'linuxidc' | tr -c 'li' 'xy'liyyyiyyy

服务器维护小知识您可能已经注意到输出比输入多了一个字符。这是因为该 echo 命令打印了一个不可见换行符 \n 也被替换为 y 。要在没有新行的情况下回显字符串,请使用该 -n 选项。

-d(--delete) 选项告诉 tr 以删除 SET1 指定的字符。

以下命令将删除 SET1 中指定的所有字符。在不挤压的情况下删除字符时,只能指定一个字符集。

linuxidc@linuxidc:~/www.linuxidc.com$echo 'Linuxidc' | tr -d 'lid'

L 不会删除该字符,因为输入包含的是大写的 L ,而集合中的字符包含小写的 l 。

Lnuxc

在 -s(--squeeze-repeats) 选项替换重复出现的字符集。在以下示例 tr 中将删除重复的空格字符:

linuxidc@linuxidc:~/www.linuxidc.com$ echo "GNU    \    Linux" | tr -s ' '

GNU \ Linux

使用 SET2 时, SET1 中指定的字符序列将替换为 SET2 。

linuxidc@linuxidc:~/www.linuxidc.com$ echo "GNU    \    Linux" | tr -s ' ' '_'

GNU_\_Linux

-t(--truncate-set1) 选项强制 tr 到做进一步处理之前截断 SET1 到 SET2 的长度。

默认情况下,如果 SET1 大于 SET2   tr 将重用 SET2  的最后一个字符。这是一个例子:

linuxidc@linuxidc:~/www.linuxidc.com$ echo 'Linux idc' | tr 'abcde' '12'

输出将显示 SET1 中的字符 e 与 SET2 的最后字符匹配,即 2 :

Linux i22

现在使用带有 -t 选项的相同命令:

linuxidc@linuxidc:~/www.linuxidc.com$echo 'Linux idc' | tr -t 'abcde' '12'

您可以看到,在这种情况下, SET1 的最后三个字符将被删除。 SET1 变为 ‘ab’ ,与 SET2 的长度相同。

Linux idc

该 tr 命令还允许您组合使用选项。例如,下面的命令将替换所有字符除了 i 用 0 ,然后它会挤压重复 0 字符:echo 'Linux idc' | tr -cs 'i' '0'0i0i0

在本节中,我们将介绍 tr 命令常见用法的几个示例。

将小写转换为大写

将小写转换为大写或大写转为小写是 tr 命令的典型用例之一。 [:lower:] 匹配所有小写字符, [:upper:] 匹配所有大写字符。echo 'Linuxidc' | tr '[:lower:]' '[:upper:]'LINUXidc

您也可以使用范围代替字符类:echo 'Linuxidc' | tr 'a-z' 'A-Z'

要将大写字母转换为小写字母,只需切换集合的位置即可。

服务器维护小知识删除所有非数字字符

以下示例将从传递给 tr 命令的输入中删除所有非数字字符:echo "my phone is 123-456-7890" | tr -cd [:digit:]

[:digit:] 代表所有数字字符,通过使用该 -c 选项,该命令将删除所有非数字字符。输出将如下所示:1234567890

服务器维护小知识将每个单词放在新行中

要将每个单词放在一个新行中,我们需要匹配所有非 alpha 数字字符并用新行替换它们:

linuxidc@linuxidc:~/www.linuxidc.com$ echo 'GNU is an operating system' | tr -cs '[:alnum:]' '\n'

GNU

is

an

operating

system

要删除空白行,只需挤压重复的换行符:tr -s '\n' < file.txt > new_file.txt

在上面的命令中,我们使用重定向符号将命令 < 的内容作为输入传递 file.txt 给 tr 命令。重定向 > 将命令的输出写入 new_file.txt 。

服务器维护小知识在单独的行上打印 $PATH 目录

该 $PATH 环境变量是一个冒号分隔的列表,告诉 SHELL 当你输入一个命令时可以在哪些目录来搜索可执行文件。

要在单独的行上打印每个目录,我们需要匹配冒号 (:) 并将其替换为新行:

linuxidc@linuxidc:~/www.linuxidc.com$ echo $PATH | tr  ':' '\n'

/home/linuxidc/.cargo/bin

/home/linuxidc/.local/bin

/usr/local/sbin

/usr/local/bin

/usr/sbin

/usr/bin

/sbin

/bin

/usr/games

/usr/local/games

/snap/bin

/opt/nodejs/bin

到目前为止,您应该很好地理解如何使用 Linux   tr 命令。虽然非常有用, tr 但只能使用单个字符。对于更复杂的模式匹配和字符串操作,您应该使用 sed 或 awk 。

服务器维护详解,服务器维护Linux tr 命令详解相关推荐

  1. linux tr命令完整,linux tr命令详解

    tr命令可以对来自标准输入的字符进行替换.压缩和删除.下面由学习啦小编为大家整理了linux tr命令的相关知识,希望对大家有帮助! linux tr命令用途 tr命令可以对来自标准输入的字符进行替换 ...

  2. [转]linux tr命令详解

    转自:http://www.cnblogs.com/huangxingkezhan/archive/2013/01/23/2874031.html 通过使用 tr,您可以非常容易地实现 sed 的许多 ...

  3. linux tr命令详解

    通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能.您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符.您也可以用它来除去重复 ...

  4. linux ps 详解 博客,Linux PS 命令 详解(转)

    Linux操作系统PS命令详细解析(转) 要对系统中进程进行监测控制,用 ps 命令满足你. /bin/ps ps 是显示瞬间行程的状态,并不动态连续:如果想对进程运行时间监控,应该用 top 工具. ...

  5. linux rm -rf删除文件,Linux rm命令详解

    Linux rm命令 Linux rm命令用于删除一个文件或者目录 语法: rm [options] name... 参数解释: -f, --force 强制删除.忽略不存在的文件,不提示确认 -i ...

  6. python远程linux服务器执行命令_基于使用paramiko执行远程linux主机命令(详解)

    paramiko是python的SSH库,可用来连接远程linux主机,然后执行linux命令或者通过SFTP传输文件. 关于使用paramiko执行远程主机命令可以找到很多参考资料了,本文在此基础上 ...

  7. 【网络编程】Linux tcpdump命令详解---编辑中

    目录 即看即用 详细说明 简介 输出信息含义 链路层头 TCP 数据包 UDP 数据包 SMB/CIFS 解码 AFS 请求和回应 KIP AppleTalk协议 IP 数据包破碎 时间戳 反向过滤 ...

  8. linux mount命令衔接,Linux mount命令详解:挂载Linux系统外的文件

    Linux mount命令详解:挂载Linux系统外的文件 <Linux挂载>一节讲到,所有的硬件设备必须挂载之后才能使用,只不过,有些硬件设备(比如硬盘分区)在每次系统启动时会自动挂载, ...

  9. Linux chkconfig命令详解

    Linux chkconfig命令详解 (2011-03-07 15:49:04) 转载 标签: linux shell chkconfig 杂谈 分类: 工作*Linux chkconfig:    ...

最新文章

  1. Ensemble-BioMart:得到基因注释信息(有参考基因组的物种)
  2. 大物实验总结模板_高考化学实验题答题模板归类总结!
  3. python看什么书-自学python看什么书
  4. 计算机组成原理(哈工大刘宏伟)
  5. 如何将静态网页通过nginx访问
  6. flask 定义数据库关系(一对多) --
  7. 好代码是管出来的——.Net中的代码规范工具及使用
  8. Flutter自定义使用Dialog并更新Dialog中的内容
  9. SpringSecurity的认识和整合流程
  10. 企业要做有价值的私域流量三大关键
  11. 大数据分析必不可少之数据仓库
  12. Kepware欧姆龙驱动连接选型大全
  13. c语言数列求和程序137,C语言循环结构 -C语言数列求和(使用while循环)
  14. 为什么拉格朗日对偶函数一定是凹函数(逐点下确界)
  15. Ubuntu 21 .1安装wps office 2019并解决字体缺失问题教程
  16. Sutherland-Hodgeman 多边形裁剪算法
  17. 读书笔记—CLR via C#章节4-7
  18. 如何将多个pdf合成一个pdf?
  19. 股票和竞价以及股票的集合竞价是什么意思
  20. APP安全的防护方法

热门文章

  1. java毕业生设计预约健身私教网站计算机源码+系统+mysql+调试部署+lw
  2. 有没有便宜的易优cms授权(易优cms授权便宜获取)
  3. 微信公众号获取OpenId(未授权)(需要关注公众号)
  4. 详细讲解一下Linux内核系统结构(图例解析)
  5. 快递查询小程序的源码
  6. 《Java SE实战指南》01-09:常见问题及其解决方案
  7. Python3爬虫-04-模拟登录爬取企信宝200页数据
  8. 服务器智能管理,管好十万台服务器?必须靠智能!
  9. 小红书爆款笔记运营攻略
  10. ROS中7自由度机械臂自定义发布订阅节点