当前位置:首页>Linux>被低估的Linux神器tr命令:10 个生产实战场景,一分钟搞定文本处理

被低估的Linux神器tr命令:10 个生产实战场景,一分钟搞定文本处理

  • 2026-10-11 05:44:48
被低估的Linux神器tr命令:10 个生产实战场景,一分钟搞定文本处理

很多运维、开发处理文本数据时,第一反应就是用llinux三剑客中的sed、awk。

但实际上,90%的简单文本替换、去空、大小写转换、去特殊字符场景,根本不用上 sed。linux自带的tr命令,轻量、高效、语法极简,管道配合使用效率极高。它是真正的小命令大能量,日常日志清洗、数据格式化、脚本数据处理刚需度拉满。

一、tr的核心功能

tr其实比较简单,tr全称translate(翻译),它的设计哲学是一个字符对应一个字符。总结起来就是:tr=字符替换、删除、压缩、转换工具。

它只处理单个字符级别操作,不支持复杂正则,也正因如此,速度极快、资源占用极低。

核心参数就3个,记完直接通吃所有场景:

tr '原字符' '新字符':字符替换tr -d:删除指定字符tr -s:压缩重复字符(去多余空格、换行神器)

二、tr的常用实战场景

场景1:文本大小写一键互转

日志、配置、变量统一格式化最常用的操作。

#小写转大写echo "linux tr ceshi" | tr 'a-z' 'A-Z'#大写转小写echo "LINUX TR TCESHI" | tr 'A-Z' 'a-z'

常用在脚本变量统一格式化、日志关键字统一匹配。

场景2:批量删除指定字符

清洗杂乱日志、剔除多余符号、清理特殊字符必备。

#删除所有数字echo "test123log456" | tr -d '0-9'#删除所有字母(全部大小写字母 )echo "123abc456def" | tr -d 'a-zA-Z'#删除常见特殊符号echo "log@2026#test" | tr -d '@#'

场景3:去除多余空格,统一规整格式

日志经常存在多个空格混用,无法直接精准切割,tr -s可一键压缩。

#多个空格压缩为1个echo "user  root   id  0" | tr -s ' '

场景4:去除多余空行

导出的配置文件、日志文件大量空行,影响查看与解析。

#压缩所有连续空行为单行cat ceshi.log | tr -s '\n'

场景5:替换换行符为空格(多行转一行)

遍历结果、日志行数据,需要合并成一行处理时超级好用。

cat ip.txt | tr '\n' ' '

场景6:制表符tab替换为空格

很多配置文件、导出数据tab/空格混用,导致解析异常,一键统一格式。

#Tab 替换为单个空格tr '\t' ' ' < test.conf

场景7:清洗脏日志:一次性剔除乱码、特殊符号

线上日志经常出现不可见字符、乱码、特殊符号,导致脚本解析报错。

#只保留数字、字母、换行,其余全部删除cat app.log | tr -cd '0-9a-zA-Z\n '

其中-c代表取反,意思是:只保留指定字符,其余全部删掉。

场景8:批量替换分隔符

把杂乱分隔符统一成逗号、空格,方便后续导入表格、脚本解析。

#将冒号替换为空格cat /etc/passwd | tr ':' ' '

场景9:统计纯文本有效行数(过滤空行)

配合wc统计真实有效日志行,避开大量空行干扰。

cat app.log | tr -s '\n' | wc -l
#也可以使用grep -vc '^$' app.log#-v反选空行,-c计数

场景10:脚本快速脱敏简单数据

临时脱敏手机号、ip片段,简单高效。

echo "192.168.1.1" | tr '.' '-'#将.统一换成-

三、tr 与 sed 核心区别

很多人疑惑:有sed为什么还要用 tr?结合自己的经验给大家讲清楚生产取舍逻辑:

•tr:只做单字符转换、删除、压缩,速度快、语法极简,适合清洗、规整、格式化。

•sed:支持正则、字符串替换、行匹配,适合复杂文本处理,性能比tr重。

#性能测试:1万行文本,删除所有数字time for i in {1..10000}; do echo "test123"; done | tr -d '0-9' > /dev/nulltime for i in {1..10000}; do echo "test123"; done | sed 's/[0-9]//g' > /dev/null

由此科技tr处理速度比sed快很多。最优实践:简单字符处理一律用tr,复杂字符串替换再上sed。

四、注意事项

tr不支持直接处理字符串,只支持单个字符,想替换长内容需用sed;

tr默认只处理标准输入,不直接操作文件,需配合管道/重定向;

tr -s是压缩重复字符,不是删除,仅连续重复字符会合并。

五、总结

tr看着冷门简单,却是 日志清洗、数据规整、脚本格式化的高频神器。

sed/awk功能很强大,但也比较复杂。如果简单任务用tr做前置数据清洗,可能效率会更高。如果觉的文章对你的运维有帮助,记得点赞加收藏。

#运维   #linux运维    #linux实战#tr命令
告别ps -ef | grep,Linux 进程查找神器pgrep实战手册
吃透Linux内核10大参数,搞定90%线上诡异故障
Linux日志查询神器 journalctl:从入门到精通,排查问题不再慌

最新文章

随机文章