当前位置:首页>Linux>Linux基础 | tr 命令使用指南:字符替换与文本转换的利器

Linux基础 | tr 命令使用指南:字符替换与文本转换的利器

  • 2026-09-20 20:11:42
Linux基础 | tr 命令使用指南:字符替换与文本转换的利器
在 Linux 命令行中,经常会遇到这样的需求:
  • 将小写字母转换为大写
  • 删除某些字符
  • 批量替换文本中的字符
  • 清理日志中的特殊符号
例如:
echo "hello linux"
如果想把输出变成:

HELLO LINUX

或者删除文本中的某些字符,该怎么做?
这时候就要用到一个非常实用的命令:tr
tr 是 Linux 中用于字符转换与删除的工具,它的名字来自translate(转换)。
一句话理解:tr 用于对文本中的字符进行替换、删除或压缩。
它常常与管道 | 配合使用,是文本处理工具链中的重要成员。

一、tr 命令基本语法

基本格式:
tr [选项] SET1 [SET2]
含义:
从标准输入读取数据
→ 按规则进行字符转换
→ 输出结果
注意:
tr 只处理字符流(标准输入),因此通常需要搭配管道。
例如:
echo "hello" | tr a-z A-Z
输出:
HELLO

二、小写转大写

这是 tr 最经典的用法。
示例:
echo "linux command" | tr a-z A-Z
输出:LINUX COMMAND
解释:
a-z  表示小写字母
A-Z  表示大写字母

三、大写转小写

反过来也可以:
echo "HELLO LINUX" | tr A-Z a-z
输出:hello linux
这在处理日志或统一文本格式时非常常见。

四、删除字符(-d)

tr 还可以删除指定字符。
示例:
删除数字:
echo "linux123command456" | tr -d 0-9
输出:linuxcommand
解释:
-d 表示 delete
删除空格:
echo "hello linux world" | tr -d " "
输出:hellolinuxworld

五、压缩重复字符(-s)

如果文本中出现很多连续字符,可以使用 -s 进行压缩。
示例:
echo "hello     linux" | tr -s " "
输出:hello linux
解释:
-s 表示 squeeze
会把连续空格压缩成一个。
这个技巧在清理日志和数据时非常实用。

六、替换字符

tr 也可以实现字符替换。
示例:
echo "2025-03-10" | tr "-" "/"
输出:2025/03/10
含义:
把 - 替换为 /
再看一个例子:
echo "abc123" | tr 0-9 "*"
输出:
abc***
数字全部变成 *。

七、删除换行符

在处理文本文件时,有时需要删除换行符。
示例:
cat file.txt | tr -d '\n'
作用:
把多行内容合并为一行
例如:
原文件:

linux

command

line

输出:

linuxcommandline

八、配合管道处理日志

来看一个实战例子。
假设有一个日志文件:
cat access.log
内容:

192.168.1.1 - - [GET]

192.168.1.2 - - [POST]

如果想删除中括号:
cat access.log | tr -d "[]"
输出:

192.168.1.1 - - GET

192.168.1.2 - - POST

这样日志就更容易处理了。

九、把空格替换为换行

在处理数据时,经常需要把一行拆成多行。
示例:
echo "apple banana orange" | tr " " "\n"
输出:

apple

banana

orange

这在批量处理数据或循环脚本中非常常见。

十、小结

tr 是 Linux 中非常轻量但强大的文本处理工具。
它主要用于字符级操作。
核心功能包括:
  1. 字符替换
  2. 字符删除
  3. 压缩重复字符
  4. 文本格式转换
常用参数总结:
参数
作用
-d
删除字符
-s
压缩重复字符
一句话总结:tr 是 Linux 中用于字符转换与清理文本的高效工具。
在日常运维、日志处理和数据清洗中,经常会与 grep、sed、awk、xargs 等命令一起使用,形成强大的Linux文本处理工具链。

最新文章

随机文章