tr - translate or delete characters
tr 命令用于转换或删除文件中的字符。
tr 指令从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
语法:
tr [OPTION]... SET1 [SET2]
tr [-cdst][--help][--version][第一字符集][第二字符集]
参数:
- -c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
- -d, --delete:删除指令字符
-
# 删除user几个字符 [root@oldboy oldboy]# cat new.txt|tr -d 'user' 1-01 2-02 3-03 4-04 5-05 # 删除字母 [root@oldboy oldboy]# cat new.txt|tr -d [:alpha:] 1-01 2-02 3-03 4-04 5-05 # 删除- [root@oldboy oldboy]# cat new.txt|tr -d - 1user01 2user02 3user03 4user04 5user05 # 删除数字1-9 [root@oldboy oldboy]# cat new.txt|tr -d [1-9] -user0 -user0 -user0 -user0 -user0 # 删除数字0-9 [root@oldboy oldboy]# cat new.txt|tr -d [0-9] -user -user -user -user -user # 删除数字和- [root@oldboy oldboy]# cat new.txt|tr -d "[0-9]-" user user user user user
-
- -s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符
- -t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等
示例:
[root@oldboy oldboy]# cat new.txt 1-user01 2-user02 3-user03 4-user04 5-user05 # 从标准输入读取文件内容,作为字符集 [root@oldboy oldboy]# tr [1-9] [a-z] <new.txt a-user0a b-user0b c-user0c d-user0d e-user0e
[root@oldboy oldboy]# cat new.txt|tr [1-9] [a-z]
a-user0a
b-user0b
c-user0c
d-user0d
e-user0e
将1替换为a,将2替换b,将3替换为c,...,一次类推。
大小写转换,也可以通过[:lower][:upper]参数来实现:
[root@oldboy oldboy]# cat new.txt|tr [:lower:] [:upper:] 1-USER01 2-USER02 3-USER03 4-USER04 5-USER05 [root@oldboy