1、tr介绍
Linux tr 命令用于转换或删除文件中的字符。tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
2、语法
- tr [-cdst] [--help] [--version] [第一字符集] [第二字符集]
- tr [OPTION]…SET1[SET2]
3、参数说明
字符串 |
含义 |
-c, --complement |
反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换 |
-d, --delete |
删除指令字符 |
-s, --squeeze-repeats |
缩减连续重复的字符成指定的单个字符 |
-t, --truncate-set1 |
削减 SET1 指定范围,使之与 SET2 设定长度相等 |
--help |
显示程序用法信息 |
--version |
显示程序本身的版本信息 |
4、常用的匹配字符串
字符串 |
含义 |
a-z或[:lower:] |
匹配所有小写字母 |
A-Z或[:upper:] |
匹配所有大写字母 |
0-9或[:digit:] |
匹配所有的数字 |
[:alnum:] |
匹配所有字母和数字 |
[:alpha:] |
匹配所有字母 |
[:blank:] |
所有水平空白 |
[:punct:] |
匹配所有标点符号 |
[:space:] |
皮牌所有水平或垂直的空格 |
[:cntrl:] |
匹配所有控制字符 |
5、tr命令常用实例
5.1 比如这里准备一个文件内容如下:
[root@centos7 ~]# cat test.txt
"192.168.200.254"
"abcdEFG00ZZxxYy"
"测试"
root:123:ABC
5.2 将所有小写字母转换成大写字母
[root@centos7 ~]# tr 'a-z' 'A-Z' < test.txt
"192.168.200.254"
"ABCDEFG00ZZXXYY"
"测试"
ROOT:123:ABC
5.3 将文件里面的数字全部改成 & 符号
[root@centos7 ~]# tr '0-9' '&' < test.txt
"&&&.&&&.&&&.&&&"
"abcdEFG&&ZZxxYy"
"测试"
root:&&&:ABC
5.4 将文件里面的冒号替换成tab制表符,如:管道符 && 换行符
# 管道符
[root@centos7 ~]# tr ':' '\t' < test.txt
"192.168.200.254"
"abcdEFG00ZZxxYy"
"测试"
root 123 ABC
# 换行符
[root@centos7 ~]# tr ':' '\n' < test.txt
"192.168.200.254"
"abcdEFG00ZZxxYy"
"测试"
root
123
ABC
5.5 删除文件里面的所有小写字母或者标点符号,比如:引号
[root@centos7 ~]# tr -d 'a-z' < test.txt
"192.168.200.254"
"EFG00ZZY"
"测试"
:123:ABC
[root@centos7 ~]# tr -d '"' < test.txt
192.168.200.254
abcdEFG00ZZxxYy
测试
root:123:ABC
5.6 也可以直接删除多组,直接叠加即可
[root@centos7 ~]# tr -d '"/A-Z' < test.txt
192.168.200.254
abcd00xxy
测试
root:123:
5.7 删除文件里面的空白行
[root@centos7 ~]# tr -s '\n' < test.txt
"192.168.200.254"
"abcdEFG00ZZxxYy"
"测试"
root:123:ABC