您的位置:首页 > 运维架构 > Shell

shell脚本之tr命令使用

2017-06-19 17:48 393 查看
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也可以像集合一样使用各种不同的字符类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: