trbsd 命令
用途
翻译字符(BSD 版)。
语法
描述
trbsd 命令从标准输入删除或替换字符,然后将其结果写到标准输出。 trbsd 命令是 tr 命令的 BSD 版。 根据由参数指定的字符串和指定标志,trbsd 命令可执行三种操作。 String1 或 String2 参数的缺省值为空字符串。
变换字符
如果 String1 和 String2 参数都已指定,但 -d 标志没有指定,trbsd 命令会从标准输出中将 String1 参数所指定的每一个字符替换成 String2 参数中同样位置上的字符。
如果 String1 参数多次指定某个字符,那么该字符就在 String2 参数中被翻译成为与 String1 参数中最后出现的字符相对应的字符。
使用 -d 标志来删除字符
如果指定了 -d 标志,trbsd 命令就会从标准输入中删除 String1 参数所指定的每一个字符。
使用 -s 标志来除去字符序列
如果指定了 -s 标志,trbsd 命令将从标准输入中删除 String2 参数所指定的重复出现两次或多次的字符的序列中除第一个字符外的所有字符。
当同时指定了 -d 和 -s 标志时,必须同时指定 String1 和 String2 参数。
注: trbsd 命令在开始处理之前从标准输入中删除所有空字符。
用于表示字符串的特殊序列
包含在 String1 和 String2 参数中的字符串可以使用以下约定来表达:
| 项 | 描述 |
|---|---|
| C1 - C2 | 指定在 C1 字符串指定的字符和 C2 字符串指定的字符之间(包括 C1 和 C2)进行整理的字符串。 C1 字符串指定的字符必须整理放在 C2 字符串指定的字符之前。 |
| \八进制 | 指定其编码由指定的八进制值表示的字符。 八进制值可以是一个 1 位、2 位或 3 位八进制整数。 多字节字符可以通过对每一个字节写反斜线八进制序列来表示。 |
| \- | "\-"(反斜线符,减号)表示减号字符本身,没有作为转义字符的任何特殊含意。 |
如果由 String1 和 String2 参数指定的字符串长度不同,trbsd 命令填充较短字符串使其长度与较长字符串相同。 字符填充是通过复制较短字符串的最后一个字符来完成的,复制的次数由需要决定。
标志
| 项 | 描述 |
|---|---|
| -A | 使用范围和字符类的 ASCII 整理顺序而不是当前语言环境整理顺序来一个字节一个字节地执行所有操作。 |
| -c | 指定 String1 参数的值由该字符串的补码来替换。 该补码为当前语言环境的字符集中的所有字符,除了由 String1 参数指定的字符以外。 如果一起指定了 -A 和 -c 标志,那么与所有 8 位字符代码集合有关的字符将被补足。 |
| -d | 从标准输入中删除包含在 String1 参数里的每一个字符。 |
| -s | 从标准输入中删除包含在 String2 参数中的重复出现两次或多次的字符的序列中除第一个字符外的所有字符。 |
示例
- 要将花括号转换为括号,请输入:
这将转换每个{(左花括号) 到((左括号) 和每个}(右花括号) 到)(右括号)。 所有其他的字符都保持不变。trbsd '{}' '()' < textfile > newfile - 要交换带有减号的加号和带有星号的斜杠字符,请输入:
减号必须与反斜杠转义字符一同输入。trbsd '+\-/*' '\-+*/' < textfile > newfile - 要将小写字符转换为大写,请输入:
trbsd 'a-z' 'A-Z' < textfile > newfile - 要在文件中创建词列表,请输入:
这便将每一序列的字符(小、大写字母除外)都转换成单个换行符。 八进制值 012 是换行符的编码。trbsd -cs 'a-zA-Z' '\012' < textfile > newfile - 要将一个或多个换行符的每个序列替换为单个换行符,请输入:
trbsd -s '\012' < textfile > newfile
文件
| 项 | 描述 |
|---|---|
| /usr/bin/trbsd | 包含 trbsd 命令。 |
| /usr/ucb/tr | 包含与 trbsd 命令的符号链接。 |