tr命令

语法

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 

1
2
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






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值