今天想和大家介绍下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中文网其他相关文章!