# tr 命令

tr 命令用于转换或删除字符。它可以将一组字符转换成另一组字符,或者删除指定的字符。

# 语法

tr [选项] SET1 [SET2]

# 常用选项

  • -d: 删除SET1中的字符
  • -s: 压缩重复的字符
  • -c: 取SET1的补集
  • -t: 截断SET1使其长度与SET2相同

# 使用示例

# 字符转换

# 将小写转换为大写
echo "hello" | tr 'a-z' 'A-Z'

# 将空格转换为换行符
echo "hello world" | tr ' ' '\n'

# 将多个字符转换为单个字符
echo "hello 123" | tr 'a-z' 'x'

# 删除字符

# 删除数字
echo "hello 123" | tr -d '0-9'

# 删除空白字符
echo "hello   world" | tr -d ' \t'

# 压缩字符

# 压缩重复的空格
echo "hello    world" | tr -s ' '

# 压缩重复的换行符
cat file.txt | tr -s '\n'

# 补集操作

# 只保留数字和换行符
echo "hello 123" | tr -cd '0-9\n'

# 删除所有非字母字符
echo "hello 123" | tr -cd 'a-zA-Z\n'

# 实际应用场景

  1. 文本格式转换:转换文件格式(如DOS到Unix)
  2. 数据清理:删除或替换不需要的字符
  3. 字符集转换:在不同字符集之间转换
  4. 文本规范化:统一文本格式

# 注意事项

  1. tr 命令只能通过标准输入读取数据
  2. 某些特殊字符需要转义
  3. SET1和SET2的长度关系会影响转换结果
  4. 在处理多字节字符时要特别小心