欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  运维

linux系统下tr命令详解

程序员文章站 2022-04-04 09:35:43
...
今天想和大家介绍下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命令详解的详细内容,更多请关注其它相关文章!

相关标签: linux tr