tr命令

tr命令可以对来自标准输入的字符进行替换、压缩和删除。

 

-c:取反(补集)

-d:删除

-s:压缩重复字符, 可以使用-s '\n'删除空行。

-t:字符字符顺序1对1替换,无论SET1还是SET2哪个长,只替换对应的字符,多出的不替换。

 

举例:

1,无参替换:

[root@localhost] ~$ echo "HELLO WORLD" | tr 'A-Z' 'a-z' 
hello world

 

[root@localhost] ~$ echo "aaAA1bbBB2ccCC3" | tr 'abc' '12'
11AA122BB222CC3

a被替换成1,b被替换成2,c被替换成2

 

[root@localhost] ~$ echo "aaAA1bbBB2ccCC3" | tr 'ab' '123'
11AA122BB2ccCC3

a被替换成1,b被替换成2

 

2、-t  多出的字符不替换

[root@localhost] ~$ echo "aaAA1bbBB2ccCC3" | tr -t 'abc' '12'
11AA122BB2ccCC3
[root@localhost] ~$ echo "aaAA1bbBB2ccCC3" | tr -t 'ab' '123'
11AA122BB2ccCC3

 

a被替换成1,b被替换成2

 

 

3,-d 删除,-c取反

[root@localhost] ~$ echo "aaAA1bbBB2ccCC3" | tr -d 'a-z'
AA1BB2CC3 
[root@localhost] ~$  echo "aaAA1bbBB2ccCC3" | tr -d -c 'a-z\n'
aabbcc

 

4,-c 取反(\n是换行) 

[root@localhost] ~$ echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c '0-9 \n' 
 1  2  3  4

此例中,补集中包含了数字0~9、空格和换行符\n,所以没有被删除,其他字符全部被删除了。 

 

5,-s 压缩

[root@localhost] ~$ echo "thissss is a text linnnnnnne." | tr -s ' sn' 
this is a text line.

 

 

 

 

 

 

posted @ 2017-02-14 15:17  fanren224  阅读(155)  评论(0编辑  收藏  举报