欢迎光临
我们一直在努力

shell脚本之tr命令使用

shell脚本之tr命令使用

tr命令用来进行对标准输入的内容做替换。例如

# echo \’HELLO WORLD!!!\’ | tr \”A-Z\” \”a-z\”
hello world!!!

这里的\”A-Z\”、\”a-z\”都表示集合,shell脚本中定义集合类型很简单,即指定集合序列即可,但是对于上边的情形,不得非输入所有集合类型,可以通过“开始字符-结束字符”方式进行集合定义。使用tr命令结合集合使用,可以解决很多复杂问题。

使用tr进行数据加密,解密:

# echo 456 | tr \”0-9\” \”9876543210\”
543

# echo 543 | tr \”9876543210\” \”0-9\”
456

tr进行字符替换:

# cat dept 

10    ACCOUNTING    NEW YORK
20    RESEARCH    DALLAS
30    SALES    CHICAGO
40    OPERATIONS    BOSTON

# cat dept | tr \”\\t\” \” \”

10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

指定-d参数删除指定字符串:

# echo \’hello 123 world 456 !!!\’ | tr -d \'{0-9}\’
hello  world  !!!

指定-c参数进行补集处理,通常与-d连用,删除不满足条件的字符:

# echo \’hello 123 world 456 !!!\’ | tr -d -c \'{0-9 \\n}\’
  123  456 

tr命令中-s参数进行字符压缩,将连续的重复字符压缩成当个字符,最常见的场景就是压缩空白格:

# echo \’hello           123              world             456 !!!\’ | tr -s \’ \’
hello 123 world 456 !!!

技巧:使用tr将文件中的字符列表相加:

# seq 5 | echo $[ $( tr \’\\n\’ \’+\’ ) 0 ]
15

解释:将\\n替换成+后,脚本输出变成$[ 1+2+3+4+5+0 ],可以直接进行加法计算,省去循环读取数字的麻烦。

tr也可以像集合一样使用各种不同的字符类。

sed和tr替换换行符:sed \’:label;N;s/,\\n/,/;b label ; tr \’\\n\’ \’,\’

赞(0) 打赏
未经允许不得转载:欧欧colo教程网 » shell脚本之tr命令使用

更稳定的 国内物理服务器租用 机柜托管

促销 - 国内物理机 40核 64G内存 1T硬盘 ¥260

服务器促销国内物理机 40核 64G内存 1T硬盘 ¥260

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏