当前位置:首页>Linux>Linux 命令篇:tr 轻松搞定文本转换与处理

Linux 命令篇:tr 轻松搞定文本转换与处理

  • 2026-09-07 20:14:05
Linux 命令篇:tr 轻松搞定文本转换与处理
大家好!我是大虫子🐛!
少说废话,直接进入正题~
给大家介绍一个 Linux 中既能转换又能删除字符的命令:tr。
tr 命令是 Linux 系统中用于转换和删除字符的命令,全称是 "translate"。tr 主要通过标准输入读取数据,并对这些数据进行字符替换、删除或压缩,然后将结果输出到标准输出。
🎯基本语法
tr [OPTION]... SET1 [SET2]
  • SET1: 指定要转换或操作的字符集。
  • SET2: 指定与 SET1 对应的字符集,用于转换操作。
🎯常用选项
  • -d: 删除在 SET1 中出现的字符。
  • -s: 压缩重复的字符,将多个连续的相同字符压缩为一个字符。
  • -c: 取 complement,即选择不在 SET1 中的字符。
  • -t: 只处理 SET1 中的最小数量的字符,而不是全部。
  • -A: 启用所有字符集(仅在某些实现中可用)。
🎯数据输入和输出
tr 可以从标准输入读取数据,通常通过管道(|)与其他命令结合使用。
输出结果默认打印到标准输出,可以重定向到文件中。
举点常用例子:
1. 字符替换
将输入中的小写字母转换为大写字母:
echo "hello world" | tr'a-z''A-Z'
输出:
HELLO WORLD
2. 删除字符
删除输入中的所有数字:
echo "abc123def456" | tr -d '0-9'
输出:
abcdef
3. 压缩重复字符
将多个连续的空格压缩为一个空格:
echo "This    is     a test." | tr -s ' '
输出:
This is a test.
4. 取补集
输出不在 SET1 中的字符,例如输出所有非字母字符:
echo "Hello, World! 123" | tr -c 'a-zA-Z''\n'
输出:
,!123
5. 同时使用多个操作
可以组合使用不同的选项。例如,先替换字符,再删除字符:
echo "hello 123" | tr'e''E' | tr -d '0-9'
输出:
hEllo
6. 使用字符范围
tr 还支持使用字符范围来指定字符集。例如,要将字母的大小写互换:
echo "Hello World" | tr'A-Za-z''a-zA-Z'
输出:
hELLO wORLD
7. 文件操作
虽然 tr 通常用于处理标准输入,但也可以用于文件。通过输入重定向或管道配合其他命令使用。
例如,从文件中读取并进行字符转换:
tr 'a-z''A-Z' < input.txt > output.txt
这将把 input.txt 文件中的所有小写字母转换为大写字母,并将结果输出到 output.txt。
8. 使用字符类
在某些版本的 tr 中,你可以使用字符类,比如 [:digit:] 表示所有数字:
echo "abc123" | tr'[:lower:]''[:upper:]'
输出:
ABC123
9. 删除空行
cat file.txt | tr -s "\n" > new_file
tr 是一个强大的文本处理工具,在需要对字符进行转换、删除或压缩时非常有用。它通常与其他命令结合使用,通过管道处理流数据,完成复杂的文本转换任务。

最新文章

随机文章