Linux-tr命令详细使用方法

发布时间 2023-11-10 16:49:29作者: 退役小学生

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