tr命令可以对来自标准输入的字符进行替换、压缩和删除。
-c:取反(补集)
-d:删除
-s:压缩重复字符, 可以使用-s ' '删除空行。
-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 ' aabbcc
4,-c 取反( 是换行)
[root@localhost] ~$ echo aa.,a 1 b#$bb 2 c*/cc 3 ddd 4 | tr -d -c '0-9 ' 1 2 3 4
此例中,补集中包含了数字0~9、空格和换行符 ,所以没有被删除,其他字符全部被删除了。
5,-s 压缩
[root@localhost] ~$ echo "thissss is a text linnnnnnne." | tr -s ' sn' this is a text line.