语法
tr [OPTION]... SET1 [SET2]
常用参数
-s: squeeze-repeats,用SET1指定的字符来替换对应的重复字符
删除空白行:
[root@iZ8vbe2hi0mvzsp1mkqcfdZ sh]# cat b.txt
1
2
3
[root@iZ8vbe2hi0mvzsp1mkqcfdZ sh]# cat b.txt |tr -s '\n'
1
2
3
-d:delete,删除SET1中指定的所有字符,不转换(delete characters in SET1, do not translate)
# echo "ABCdef123456"|tr -d [a-z][A-Z]
123456
-t:truncate,将SET1中字符用SET2对应位置的字符进行替换,一般缺省为-t
大小写转换或者字符替换:
# echo "abc123def456" |tr -t [def] [XYZ]
abc123XYZ456
-c:complement,用SET2替换SET1中没有包含的字符
常用参数
\NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)
\\ 反斜杠
\a Ctrl-G 铃声
\b Ctrl-H 退格符
\f Ctrl-L 走行换页
\n Ctrl-J 新行
\r Ctrl-M 回车
\t Ctrl-I tab键
\v Ctrl-X 水平制表符
CHAR1-CHAR2 从CHAR1 到 CHAR2的所有字符按照ASCII字符的顺序
[CHAR*] in SET2, copies of CHAR until length of SET1
[CHAR*REPEAT] REPEAT copies of CHAR, REPEAT octal if starting with 0
[:alnum:] 所有的字母和数字
[:alpha:] 所有字母
[:blank:] 水平制表符,空白等
[:cntrl:] 所有控制字符
[:digit:] 所有的数字
[:graph:] 所有可打印字符,不包括空格
[:lower:] 所有的小写字符
[:print:] 所有可打印字符,包括空格
[:punct:] 所有的标点字符
[:space:] 所有的横向或纵向的空白
[:upper:] 所有大写字母
实例:
1.把数列变成横排
[root@iZ8vbe2hi0mvzsp1mkqcfdZ sh]# cat b.txt
12
3
[root@iZ8vbe2hi0mvzsp1mkqcfdZ sh]# vim b.txt
[root@iZ8vbe2hi0mvzsp1mkqcfdZ sh]# cat b.txt |tr '\n' '*'
1*2*3*
2.删除空行并变成横排
[root@iZ8vbe2hi0mvzsp1mkqcfdZ sh]# cat b.txt
1
2
3
[root@iZ8vbe2hi0mvzsp1mkqcfdZ sh]# cat b.txt |tr -d '\n'
123
3.实例3
[root@iZ8vbe2hi0mvzsp1mkqcfdZ sh]# cat b.txt
Monday 09:00
Tuesday 09:10
Wednesday 10:11
Thursday 11:30
Friday 08:00
Saturday 07:40
Sunday 10:00
[root@iZ8vbe2hi0mvzsp1mkqcfdZ sh]# cat b.txt |tr -c [A-Z][a-z] '#'|tr -s '#' |tr '#' '\n'
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
PS:
# cat b.txt |tr -c [A-Z][a-z] '#'
Monday#########Tuesday########Wednesday#######Thursday########Friday#########Saturday########Sunday#########
# cat b.txt |tr -c [A-Z][a-z] '#'|tr -s '#'
Monday#Tuesday#Wednesday#Thursday#
# cat b.txt |tr -c [A-Z][a-z] '#'|tr -s '#' |tr '#' '\n'
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
\n是换行,\t是补齐,如果把\n换车\t就是这样
# cat b.txt |tr -c [A-Z][a-z] '#'|tr -s '#' |tr '#' '\t'
Monday Tuesday Wednesday Thursday Friday Saturday Sunday