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也可以像集合一样使用各种不同的字符类。
# 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也可以像集合一样使用各种不同的字符类。
相关文章推荐
- shell脚本中使用tr命令实现对字符串删除、替换和赋值
- 脚本shell中的tr 命令使用与实例
- 使用trap/tee命令/调试钩子调试Shell脚本
- 使用eval命令解决shell脚本中函数嵌套调用中的参数问题
- 书写优雅的shell脚本(四) - kill命令的合理使用
- Shell脚本中使用for循环和cat命令实现按顺序合并文件
- Shell脚本test命令使用总结和实例
- 使用shell进行调用脚本或者命令driver的测试
- BASH命令和SHELL脚本总结(18)使用ACK在指定类型的文件中进行查找
- shell tr命令的使用
- shell tr命令的使用
- Shell脚本中使用for循环和cat命令实现按顺序合并文件
- shell脚本实现每秒执行一次任务 rsync命令使用
- Shell脚本中cd命令使用
- Shell脚本test命令使用总结和实例
- SHELL脚本的基础知识2——使用结构化命令
- C程序获取shell脚本命令输出,使用popen()函数
- SHELL脚本的基础知识2——使用结构化命令
- shell脚本---tr的使用
- Linux中使用crontab命令定时执行shell脚本或其他Linux命令