首页
运维教程
Linux基础
系统服务
系统架构
数据库
shell脚本
虚拟化
大数据
DevOps
企业案例
运维开发
python
go语言
运维安全
行业资讯
网络基础
系统安全
运维面试
学习路线
学习方法
面试题库
职场解惑
常用软件
运维软件
办公软件
书籍资源
日知录
招聘信息
读书计划
书单
关于我们
首页 运维教程Linux基础【shell】shell脚本肿的文本替换工具-tr

【shell】shell脚本肿的文本替换工具-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. 将输入的字符小写换成大写
[root@rhce test]# echo "zmgaosh" |tr 'a-z' 'A-Z'
ZMGAOSH

这里的‘a-z’ ‘A-Z’都是集合,除此之外还有‘0-9’

2. 实现对密码加密

加密:

[root@rhce test]# echo 12345 | tr '0-9' 'bcdefghi'    ### 加密
cdefg

解密:

[root@rhce test]# echo 'cdefg' |tr 'bcdefghi' '0-9'
12345
3. 使用tr删除字符
[root@rhce test]# echo 'zmgaosh09 is me123' |tr -d '0-9'
zmgaosh is me
[root@rhce test]# 
4. 删除多余的空行
[root@rhce test]# cat a.txt   ## 测试文件,有空行
a
bc

cd

删除空行:

[root@rhce test]# cat a.txt |tr -s '\n'
a
bc
cd

注意: 这里只是对输出的文本删除了空行,源文件内容并没有修改

5. 将小写变成大写
[root@rhce test]# echo 'hello*' |tr [:lower:] [:upper:]
HELLO*

总结

tr命令也是比较常用的命令之一,在shell脚本中,等待用户输入Y,如果用户输入的是小写y,可以先转换成大写的Y在做比较。或者在密码文件中定好格式,当用户输入密码的时候转换成对应的格式,做对比。

shell脚本的熟练程度,取决于对系统是否熟悉。

本文链接:http://www.geekyunwei.com/2048.html

网友评论comments

发表评论

邮箱地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 2021 极客运维 备案号: 京ICP备2021004281号
扫二维码
扫二维码
返回顶部