# 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'
# 实际应用场景
- 文本格式转换:转换文件格式(如DOS到Unix)
- 数据清理:删除或替换不需要的字符
- 字符集转换:在不同字符集之间转换
- 文本规范化:统一文本格式
# 注意事项
- tr 命令只能通过标准输入读取数据
- 某些特殊字符需要转义
- SET1和SET2的长度关系会影响转换结果
- 在处理多字节字符时要特别小心