【shell】shell脚本的文本替换工具-tr
【摘要】
文章目录
tr命令介绍常见参数常用命令展示1. 将输入的字符小写换成大写2. 实现对密码加密3. 使用tr删除字符4. 删除多余的空行5. 将小写变成大写 总结
tr命令介绍
tr是一个超级好用的工具,他经常可以用来编写单行命令,对来自标准输入的内容进行字符的替换,字符的删除,以及重复字符的压缩。 也可以将一组字符变成另外一组字符。
标准...
tr命令介绍
tr是一个超级好用的工具,他经常可以用来编写单行命令,对来自标准输入的内容进行字符的替换,字符的删除,以及重复字符的压缩。 也可以将一组字符变成另外一组字符。
标准输入 stdin
常见参数
[root@rhce test]# tr --help
用法:tr [选项]... SET1 [SET2]
Translate, squeeze, and/or delete characters from standard input,
writing to standard output. -c, -C, --complement use the complement of SET1
-d, --delete delete characters in SET1, do not translate
-s, --squeeze-repeats replace each sequence of a repeated character that is listed in the last specified SET, with a single occurrence of that character
-t, --truncate-set1 first truncate SET1 to length of SET2 --help 显示此帮助信息并退出 --version 显示版本信息并退出
SET 是一组字符串,一般都可按照字面含义理解。解析序列如下: \NNN 八进制值为NNN 的字符(1 至3 个数位)
\\ 反斜杠
\a 终端鸣响
\b 退格
\f 换页
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
字符1-字符2 从字符1 到字符2 的升序递增过程中经历的所有字符
[字符*] 在SET2 中适用,指定字符会被连续复制直到吻合设置1 的长度
[字符*次数] 对字符执行指定次数的复制,若次数以 0 开头则被视为八进制数
[:alnum:] 所有的字母和数字
[:alpha:] 所有的字母
[:blank:] 所有呈水平排列的空白字符
[:cntrl:] 所有的控制字符
[:digit:] 所有的数字
[:graph:] 所有的可打印字符,不包括空格
[:lower:] 所有的小写字母
[:print:] 所有的可打印字符,包括空格
[:punct:] 所有的标点字符
[:space:] 所有呈水平或垂直排列的空白字符
[:upper:] 所有的大写字母
[:xdigit:] 所有的十六进制数
[=字符=] 所有和指定字符相等的字符
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
常用命令展示
1. 将输入的字符小写换成大写
[root@rhce test]# echo "zmgaosh" |tr 'a-z' 'A-Z'
ZMGAOSH
- 1
- 2
这里的‘a-z’ 'A-Z’都是集合,除此之外还有‘0-9’
2. 实现对密码加密
加密:
[root@rhce test]# echo 12345 | tr '0-9' 'bcdefghi' ### 加密
cdefg
- 1
- 2
- 3
解密:
[root@rhce test]# echo 'cdefg' |tr 'bcdefghi' '0-9'
12345
- 1
- 2
3. 使用tr删除字符
[root@rhce test]# echo 'zmgaosh09 is me123' |tr -d '0-9'
zmgaosh is me
[root@rhce test]#
- 1
- 2
- 3
4. 删除多余的空行
[root@rhce test]# cat a.txt ## 测试文件,有空行
a
bc
cd
- 1
- 2
- 3
- 4
- 5
删除空行:
[root@rhce test]# cat a.txt |tr -s '\n'
a
bc
cd
- 1
- 2
- 3
- 4
注意: 这里只是对输出的文本删除了空行,源文件内容并没有修改
5. 将小写变成大写
[root@rhce test]# echo 'hello*' |tr [:lower:] [:upper:]
HELLO*
- 1
- 2
总结
tr命令也是比较常用的命令之一,在shell脚本中,等待用户输入Y,如果用户输入的是小写y,可以先转换成大写的Y在做比较。或者在密码文件中定好格式,当用户输入密码的时候转换成对应的格式,做对比。
shell脚本的熟练程度,取决于对系统是否熟悉。
文章来源: zmedu.blog.csdn.net,作者:互联网老辛,版权归原作者所有,如需转载,请联系作者。
原文链接:zmedu.blog.csdn.net/article/details/107885820
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)