99%的 Linux 用户还不会:tr 命令让文本转换快到飞起

99%的 Linux 用户还不会:tr 命令让文本转换快到飞起

_

作为 Linux 用户,你是否经常为以下事情头疼?

  • 日志文件里大小写混乱,需要统一格式
  • 接口返回的数据用逗号分隔,但要改成空格或换行
  • 批量修改配置文件、文件名、变量内容
  • 数据清洗时要删除特殊字符或数字

不用打开 VS Code 慢慢改,也不用写复杂脚本 —— 一条 tr 命令就能搞定

tr(translate)是 Linux 里最轻量、最快的文本转换工具之一,被称为命令行界的“查找-替换”大师

1783913054468.png

一、基础用法(3 秒上手)

# 1. 小写 → 大写
echo "hello linux tips" | tr 'a-z' 'A-Z'
# 输出:HELLO LINUX TIPS

# 2. 大写 → 小写
echo "HELLO LINUX" | tr 'A-Z' 'a-z'

# 3. 字符替换
echo "a,b,c,d,e" | tr ',' ' '
# 输出:a b c d e

1783912672453.png

二、实战场景(工作中最常用)

场景1:日志分析

# 把日志全部转大写方便搜索关键词
cat app.log | tr 'a-z' 'A-Z' | grep ERROR

# 把所有空格替换成换行,方便逐行查看
cat error.log | tr ' ' '\n'

场景2:数据清洗

# CSV 转 TSV(逗号 → 制表符)
cat data.csv | tr ',' '\t' > data.tsv

# 删除所有数字
echo "user123abc456" | tr -d '0-9'
# 输出:userabc

# 删除所有标点符号
echo "hello, world! nice?" | tr -d '[:punct:]'

场景3:文件名批量处理

# 把文件名中的空格替换为下划线
ls * | tr ' ' '_' 

场景4:配置与变量处理

# 环境变量转小写
echo $PATH | tr '[:upper:]' '[:lower:]'

三、进阶参数详解(让 tr 更强大)

参数功能示例
-d删除指定字符tr -d '0-9' 删除所有数字
-s压缩重复字符tr -s ' ' 多个空格压成一个
-c反选字符集tr -c 'a-z' '\n' 非字母转换行
[:class:]字符类[:lower:] [:upper:] [:space:] [:punct:]

组合拳示例

# 删除所有非字母和数字字符,并转小写
echo "Hello@123!World" | tr -cd '[:alnum:]' | tr 'A-Z' 'a-z'

四、效率提升技巧

# 推荐加入 ~/.bashrc 的别名
alias upper="tr 'a-z' 'A-Z'"
alias lower="tr 'A-Z' 'a-z'"
alias unspace="tr -s ' '"

# 使用
echo "hello world" | upper
cat log.txt | lower | unspace

与其他工具对比

  • 简单转换 → 用 tr(最快)
  • 复杂模式匹配 → 用 sed
  • 列处理、统计 → 用 awk

评论互动区
你最常用 tr 来处理什么场景?

  1. 大小写转换
  2. 分隔符替换
  3. 删除特殊字符
  4. 其他

欢迎留言告诉我!下一期想看 sed 进阶awk 实战 还是 find + xargs 组合技?

点赞 + 在看 + 转发,把这条干货送给需要的朋友!

#Linux #tr命令 #命令行技巧 #运维 #数据处理 #程序员效率


一条命令看穿所有 TCP 连接!后端网络排查终于不玄学了 2026-07-08
我在GitHub刷到一个诗词API,顺手写了款小程序 2026-07-13

评论区