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操作符,使用方法类似[1][2]。Tcl的string map命令更加通用,因为它将字符串映射到字符串,而tr将字符映射到字符[3]。
参见
编辑参考
编辑- ^ tr (String) - APIdock. APIdock. [12 August 2015]. (原始内容存档于2008-09-26).
- ^ tr - perldoc.perl.org. perldoc.perl.org. [12 August 2015]. (原始内容存档于2018-04-13).
- ^ Tcl Built-In Commands - string manual page. [12 August 2015]. (原始内容存档于2018-04-15).