说明
tr命令从标准输入中替换、缩减或删除字符,并将结果写到标准输出
格式
tr [option] [SET1] [SET2]
常用参数说明
- -d:删除字符
- -s:保留连续字符的第一个字符,其他删除
- -c:使用第一个字符串的补集取反
示例
1、默认情况
[root@localhost ~]# cat test.txt
name,Age,Address,Num
ZhangHi,20,SiChuan,100
YangLiu,18,BeiJing,99
LiSi,21,ShangHai,10
[root@localhost ~]#
[root@localhost ~]# tr "abc" "123" < test.txt
n1me,Age,Address,Num
Zh1ngHi,20,SiChu1n,100
Y1ngLiu,18,BeiJing,99
LiSi,21,Sh1ngH1i,10
注意:上面是把a替换成1,b替换成2,c替换成3,而非把abc字符串替换成123
2、统一大小写
[root@localhost ~]# tr '[a-z]' '[A-Z]' <test.txt
NAME,AGE,ADDRESS,NUM
ZHANGHI,20,SICHUAN,100
YANGLIU,18,BEIJING,99
LISI,21,SHANGHAI,10
3、删除文件中出现的zhang的每一个字符
[root@localhost ~]# tr -d "zhang" <test.txt
me,Ae,Address,Num
ZHi,20,SiCu,100
YLiu,18,BeiJi,99
LiSi,21,SHi,10
只要包含了z、h、a、n、g这些字符,都会被删除
4、删除文件中出现的换行”\n”和制表符”\t”
[root@localhost ~]# tr -d '\n\t' < test.txt
name,Age,Address,NumZhangHi,20,SiChuan,100YangLiu,18,BeiJing,99LiSi,21,ShangHai,10
5、删除连续的字符
[root@localhost ~]# echo "zhaaaaangggg xxxxxiao haiiiii"|tr -s zhangxiaohai
zhang xiao hai
6、取反功能
[root@localhost ~]# tr '[0-9]' '*' < test.txt #将0-9的数字全部替换成*
name,Age,Address,Num
ZhangHi,**,SiChuan,***
YangLiu,**,BeiJing,**
LiSi,**,ShangHai,**
[root@localhost ~]# tr -c '[0-9]' '*' < test.txt #将非0-9的数字替换成*
*****************************20*********100*********18*********99******21**********10*