tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符。
通过使用 tr,您可以非常容易地实现 sed 的许多最基本功能。您可以将 tr 看作为 sed 的(极其)简化的变体:它可以用一个字符来替换另一个字符,或者可以完全除去一些字符。您也可以用它来除去重复字符。这就是所有 tr 所能够做的。 在shell下执行man tr可以查看其更加详细的用法。
用法:tr [参数] 字符集1 字符集2
参数:
参数 | 作用 |
---|---|
-c(complerment) | 取代所有不属于第一字符集的字符 |
-d(delete) | 删除所有属于第一字符集的字符 |
-s(squeeze-repeats) | 把连续重复的字符以单独一个字符表示 |
-t(truncate-set1) | 先删除第一字符集较第二字符集多出的字符 |
字符集1:指定要转换或者删除的原字符集。当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2”。
字符集2:指定要转换成的目标字符集。
举例:
1、将输出字符由小写转换为大写
echo "hello world" | tr [a-z] [A-Z]
HELLO WORLD
[a-z]和[A-Z]都是集合,集合是可以自己定制的,也可以使用'','a-z' 'A-Z'
2、删除字符
echo "hello 123 world 897" | tr -d '0-9'
hello world
3、字符集补集,从输入文本中将不在补集中的所有字符删除
echo aa.adqw123 wei$%45 |tr -cd '0-9\n'
12345