前几篇文章介绍了几个用于处理字符的命令和工具,然而在处理大小写转换、删除重复字符等任务时,这些命令处理起来相对较为麻烦。这里将简单介绍Linux下自带的tr命令,相对于其他命令而言,其语法较为简单,比较方便记忆。
一、tr命令的基本格式
tr命令用于处理字符转换、删除重复字符等任务。
- 命令格式:
tr [option] [string1] [string2]
在tr的基本命令格式中,string1用于查询字符串,string2用于转换查询到的字符串。tr命令不能读取文件,如果要转换文件中的内容,可以使用重定向输入或管道的方法。
- 常用选项:
c:使用string1字符集中的补集替换,要求的字符集为ASCII。
d:删除string1中包含的所有字符。
s:将所有重复出现的字符进行压缩,只保留一个字符,即删除重复的字符。
在使用tr命令时,还需要指定string1和string2这两个格式化字符串,字符串的形式可以是字符的范围、单个字符、多字符列表等。常见的字符串形式及其含义如下:
[a-z]:小写字母a-z范围内的字符及其组合而成的字符串。
[A-Z]:大写字母A-Z范围内的字符及其组合而成的字符串。
[0-9]:数字0-9范围内的字符及其组合。
[C*n]:这个表达式中,C表示字符或字符组合,n表示重复出现的次数。即字符或字符组合出现n次的字符串。
除了以上这些常见的字符串形式以外,tr命令还支持在字符串中查询和处理一些特殊的字符,这些字符通常都使用一个八进制数字表示。常见的特殊字符及其对应的八进制表示形式如下: