为什么小写转大写如此重要?

tr 命令是 Linux/Unix 系统中用于字符转换或删除的实用工具,它从标准输入读取数据,根据指定规则处理字符后输出结果,是文本处理的利器,以下是详细用法指南:


核心功能与语法

基本语法

tr [选项] '字符集1' '字符集2'
  • 字符集1:待处理的原始字符集合
  • 字符集2:替换后的目标字符集合
  • 选项:控制处理行为(见下文)

⚠️ 注意:tr 直接处理字符(而非字符串),不支持正则表达式。


常用选项详解

选项 作用 示例
-d 删除指定字符 tr -d 'a' → 删除所有 a
-s 压缩重复字符 tr -s ' ' → 将连续空格合并为单个空格
-c 处理字符集的补集 tr -cd '0-9' → 仅保留数字(删除非数字)

经典使用场景与示例

字符替换

# 替换特定字符
echo "a-b-c" | tr '-' ':'      # 输出: a:b:c

删除字符

# 删除所有数字
echo "user123" | tr -d '0-9'   # 输出: user
# 删除换行符(合并多行为单行)
tr -d '\n' < file.txt

压缩重复字符

# 压缩连续空格
echo "Too   many spaces" | tr -s ' '  # 输出: Too many spaces
# 压缩重复字母
echo "woooow" | tr -s 'o'       # 输出: woow

字符集补集操作

# 删除所有非数字字符
echo "Phone: 123-456" | tr -cd '0-9'  # 输出: 123456
# 保留字母和空格
echo "Hello, 2025!" | tr -c -s 'a-zA-Z ' ' '
# 输出: Hello     (逗号和数字被替换为空格并压缩)

特殊字符处理

# 转义特殊字符(如换行符 \n、制表符 \t)
tr '[:lower:]' '[:upper:]' < input.txt  # 使用预定义字符类
# 路径斜杠转换
echo "/home/user" | tr '/' '\\'         # 输出: \home\user

高级技巧

字符类缩写

tr 支持预定义字符集,提高可读性:

  • [:lower:]:小写字母 a-z
  • [:upper:]:大写字母 A-Z
  • [:digit:]:数字 0-9
  • [:space:]:空白字符(空格、制表符等)

示例

# 删除所有标点
echo "Hello, World!" | tr -d '[:punct:]'  # 输出: Hello World

字符映射

当字符集长度不等时:

  • 字符集1 > 字符集2字符集1 中多余字符按 字符集2 最后一个字符替换
  • 字符集1 < 字符集2字符集2 多余部分被忽略

示例

echo "abcde" | tr 'abc' '12'  # a→1, b→2, c→2, d/e 不变 → 输出: 122de

常见错误与避坑指南

  1. 混淆字符与字符串
    tr 无法替换字符串(如 tr 'ab' 'cd' 会将 a→c, b→d,而非替换子串 “ab”)。

  2. 未转义特殊字符
    处理 、[] 等符号时需转义或用单引号包裹:

    echo "a-b" | tr '[:punct:]' '_'   # 正确:将标点替换为下划线
  3. 输入输出重定向
    tr 默认读取标准输入,处理文件时需用重定向:

    tr 'a' 'b' < input.txt > output.txt  # 正确
    tr 'a' 'b' input.txt     # 错误!

tr 是高效处理字符级文本的必备工具,尤其擅长:

  • 简单字符替换/删除
  • 大小写转换
  • 重复字符压缩
  • 基于字符集的过滤

结合管道符 可嵌入复杂命令链(如 cat file | tr -d '\n' | sort),掌握其灵活用法,能大幅提升终端操作效率。
基于 Linux 核心工具手册(man pages)及 GNU 官方文档整理,实践前建议通过 man tr 查看系统帮助。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7600.html

(0)
酷番叔酷番叔
上一篇 4天前
下一篇 4天前

相关推荐

  • Windows CMD操作全掌握?

    打开CMD的5种方法搜索栏启动按Win+S打开搜索栏 → 输入cmd → 点击”命令提示符”(Windows 10/11适用),权限说明:普通模式受限,需管理员权限时右键选择”以管理员身份运行”,运行对话框Win+R打开运行窗口 → 输入cmd → 回车(适用于所有Windows版本),文件资源管理器打开任意文……

    2025年6月20日
    1300
  • 倒角命令作用是什么?

    CAD中的倒角命令(CHAMFER)用于在两条非平行直线或多段线之间创建斜角过渡,是机械设计、建筑制图中的基础编辑操作,与圆角命令(FILLET)不同,倒角生成的是直线棱边而非圆弧,命令调用方式(兼容经典版与新版界面)命令行输入(全版本通用)直接键入 CHAMFER 或缩写 CHA → 按回车键确认功能区操作……

    2025年6月22日
    1100
  • PADS如何禁用宏命令?

    在PADS Layout/Router中禁用宏命令,可通过工具菜单关闭宏功能、删除自动加载的宏文件或修改注册表项实现永久禁用。

    2025年7月5日
    900
  • CAD文件打不开?提示RECOVER如何操作

    RECOVER命令的核心作用RECOVER是AutoCAD内置的图形修复工具,专用于:修复因软件崩溃、断电等意外中断导致的文件结构损坏恢复包含错误数据块的DWG/DXF文件诊断并修复图纸中的系统错误(如句柄丢失、对象校验失败)详细操作流程(以AutoCAD 2024为例)█ 步骤1:启动RECOVER命令方法A……

    2025年6月27日
    1200
  • 如何快速进入Linux终端?

    从图形界面进入命令界面(推荐新手)通过桌面终端应用步骤:在图形桌面(如GNOME、KDE)中,按 Ctrl + Alt + T(Ubuntu等多数发行版通用),或点击应用菜单 → 搜索 “Terminal” → 打开应用,适用场景:日常操作,可同时使用图形和命令行,临时切换虚拟控制台步骤:按 Ctrl + Al……

    2025年7月9日
    900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信