概述
tr (translate) 顾名思义,扮演着“翻译”或“替换”字符的角色。例如,它专门用于简单的字符级转换操作,如将小写字母转换为大写字母,将特定字符替换为其他字符,或将换行符替换为空格。与支持行级复杂模式匹配的 `sed` 或 `awk` 不同,`tr` 在字符级处理方面非常快速和高效。
主要特点
tr 命令的主要特点如下:
- 按字符单位转换或删除文本。
- 仅通过标准输入 (stdin) 接收数据。
- 不使用正则表达式 (regular expression)。
- 广泛用于与管道 (`|`) 结合,处理其他命令的输出结果。
tr 的基本语法
tr 命令基本接收两个字符串 (set) 作为参数。
- `tr 'set1' 'set2'`: 将 `set1` 中的字符一对一地转换为 `set2` 中的字符。
- `tr -d 'set1'`: 删除 `set1` 中的所有字符。
主要选项
根据用途对常用的 tr 命令选项进行了分组。
1) 功能选项
2) 特殊字符 & 集合
生成的命令:
请尝试组合命令。
描述:
`tr` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
使用示例
通过 tr 命令的各种使用示例来熟悉其功能。
将小写字母转换为大写字母
echo 'hello world' | tr '[:lower:]' '[:upper:]'
将从标准输入接收到的小写字母转换为大写字母并输出。
删除特定字符
echo 'hello world' | tr -d ' '
从文本中删除所有空格 (` `)。
将换行符转换为空格
cat file.txt | tr '\n' ' '
将文件内容的换行符 (`\n`) 转换为空格 (` `) 并单行输出。
压缩重复空格
echo 'hello world' | tr -s ' '
将连续重复的空格压缩为一个空格。`-s` 选项执行压缩重复字符串的功能。
将大写字母转换为小写字母
echo 'HELLO WORLD' | tr 'A-Z' 'a-z'
将从标准输入接收到的大写字母转换为小写字母并输出。
技巧与注意事项
整理了使用 tr 命令时需要注意的事项。
技巧
- tr 不直接接收文件名作为参数。必须通过 `cat` 或 `echo` 等命令将文本传递到标准输入。
- 传递字符串作为参数时,建议使用单引号 (`'`) 以防止 shell 解析特殊字符。
- 与 `sed` 或 `awk` 相比,`tr` 的功能虽然简单,但在字符级转换操作中却快得多。