Tr (Unix)

tr是一个类Unix操作系统中的命令。它是translate或transliterate的缩写，表示替换或删除输入数据集中特定字符。

该程序从其标准输入中读取一个字节流，并将结果写入标准输出。参数需要两组字符（通常长度相同），并用第二组中的相应元素替换第一组中的字符。例如，

 tr 'abcd' 'jkmn'

将a映射到j，b到k，c到m，d到n。

字符集可以使用字符范围缩写。前面的例子可以写成：

 tr 'a-d' 'jkmn'

在兼容POSIX标准的tr版本中，字符范围集合取决于语言环境的排序顺序，所以在脚本中避免使用字符范围可能更安全，因为脚本可能会在与编写时不同的语言环境下执行。范围通常可以用POSIX字符集替换，例如[:alpha:]。

s标志使tr将其输出中相同相邻字符的序列压缩为单个字符。例如，

 tr -s '\n'

用一个换行符替换连续的一个或多个换行符。

d标志使tr从其输入中删除指定的一组字符。在这种情况下，只使用单个字符集参数。以下命令删除回车符。

 tr -d '\r'

c标志表示第一组字符的补。调用

 tr -cd '[:alnum:]'

会删除所有非字母或数字字符。

tr的大多数版本，包括GNU tr和经典的Unix tr，都以单字节字符操作，不兼容Unicode。Heirloom Toolchest的实现是个例外，它提供了基本的Unicode支持。

Ruby和Perl也有一个内置的tr操作符，使用方法类似。Tcl的string map命令更加通用，因为它将字符串映射到字符串，而tr将字符映射到字符。

参见 
 Sed
 Unix实用程序列表
 GNU核心工具组

参考

外部链接 
 
 tr(1) - Unix 8th Edition手册页。
 
 
 
 examplenow.com上的使用示例

Unix文字处理实用工具
Unix SUS2008实用工具