如何快速将小写转大写?

tr(translate)是 Linux/Unix 中用于字符替换、删除或压缩的文本处理工具,它直接处理标准输入(stdin),输出到标准输出(stdout),是 Shell 脚本中高频使用的命令之一。


核心语法格式

tr [选项] SET1 [SET2]
  • SET1:要操作的原字符集
  • SET2:替换后的目标字符集(若未指定,则默认删除操作)
  • 重要特性:tr 按字符(非单词)逐字处理文本。

常用选项速查

选项 作用
-d 删除 SET1 中的字符
-s 压缩连续重复字符(去重)
-c 对 SET1 的补集操作(即“非 SET1 的字符”)
-t 将 SET1 截断为与 SET2 等长(避免多字符替换)

高频使用场景详解

字符替换(基础)

# 输出:HELLO WORLD
# 替换特定字符(如空格变下划线)
echo "file name.txt" | tr ' ' '_'
# 输出:file_name.txt
# 加密:ROT13 算法(字母偏移13位)
echo "secret" | tr 'a-zA-Z' 'n-za-mN-ZA-M'
# 输出:frperg

删除字符(-d)

# 删除所有数字
echo "phone: 123-456" | tr -d '0-9'
# 输出:phone: -
# 删除换行符(合并多行为单行)
tr -d '\n' < input.txt
# 删除非数字字符(结合 `-c`)
echo "a1b2c3" | tr -cd '0-9'
# 输出:123

压缩重复字符(-s)

# 压缩连续空格为单空格
echo "too    many spaces" | tr -s ' '
# 输出:too many spaces
# 压缩重复字母(如多个换行变一个)
echo -e "a\n\n\nb" | tr -s '\n'
# 输出:
# a
# b

字符集等价类(预定义字符组)

tr 支持 POSIX 字符类,简化常见匹配:

# 删除所有标点符号
echo "Hello! How are you?" | tr -d '[:punct:]'
# 输出:Hello How are you
# 常用等价类:
# [:alnum:] 字母+数字  [:digit:] 数字     [:lower:] 小写字母
# [:upper:] 大写字母   [:space:] 空白符   [:alpha:] 字母

进阶技巧

  • 保留换行符:用 \n 显式指定
    echo -e "a\nb\nc" | tr 'a-c' 'x-z'  # 替换字母但保留换行
  • 十六进制转义:用 \xNN 表示特殊字符
    echo "data" | tr 'a' '\x01'  # 将 'a' 替换为 ASCII 0x01

避坑指南

  1. 不支持正则表达式
    tr 仅处理单个字符,不支持 、 等正则元字符。
    错误示例:tr 'abc' 'def' 不会替换字符串 “abc”,而是分别替换 a→d、b→e、c→f。

  2. 字符集长度需匹配
    若 SET1 比 SET2 长,SET2 会重复最后一个字符补齐:

    echo "abc" | tr 'abcd' 'XYZ'  # a→X, b→Y, c→Z, d→Z
  3. 处理二进制文件需谨慎
    tr 可能破坏二进制数据(如图片、可执行文件),建议仅用于文本。


典型应用场景

  • 日志清洗:删除无关字符或压缩空格
  • 数据格式化:CSV 文件分隔符转换(如逗号转制表符)
  • 密码生成:结合 /dev/urandom 生成随机字符串
    cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 12

tr 是 Linux 文本处理的“瑞士军刀”,以简洁高效著称,虽然功能单一(仅限字符级操作),但在管道命令组合中不可或缺,掌握其核心用法(替换、删除、压缩)和字符集规则,可大幅提升命令行文本处理效率。

引用说明参考 Linux man-pages (tr 1.0) 及 GNU Coreutils 文档,结合常见运维实践整理。

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

赞 (0)
酷番叔酷番叔
上一篇 2025年7月21日 08:05
下一篇 2025年7月21日 08:25

相关推荐

  • 安全区域名称设置需遵循哪些关键原则?

    安全区域是指通过物理隔离、技术防护或管理措施,降低特定区域内人员、设备及环境风险的空间或场所,名称设置作为安全区域的基础标识,不仅是风险可视化的关键载体,更是日常管理、应急响应、合规检查的重要依据,科学合理的名称能够快速传递区域属性、风险等级及管控要求,避免因标识混乱导致的安全隐患,在化工企业中,“甲类仓储区……

    2025年11月6日
    20200
  • regsvr32命令怎么用?常见错误如何解决?

    命令作用与原理regsvr32是Windows系统用于注册/卸载DLL(动态链接库)和OCX(ActiveX控件)的核心命令,通过向系统注册表写入组件信息,使程序能正确调用这些模块,典型场景包括:修复软件功能缺失(如图像显示异常)解决”模块加载失败”等系统错误安装旧版应用程序的依赖组件标准执行步骤(需管理员权限……

    2025年7月8日
    51000
  • 安全加固折扣来袭?限时优惠力度与参与方式如何?

    随着数字化转型的深入,网络攻击手段不断翻新,从个人隐私泄露到企业核心数据被窃,安全风险无处不在,据《2023年中国网络安全态势报告》显示,去年我国境内遭受到的恶意网络攻击同比增长37%,其中未进行安全加固的系统成为攻击者的主要目标,在此背景下,安全加固已成为数字化生存的“必修课”,而各大服务商推出的“安全加固折……

    2025年11月15日
    23900
  • 镜像存放位置具体在哪?,镜像存放位置怎么设置

    镜像存放位置的选择是云资源部署的核心决策,直接影响服务可用性、访问速度与成本控制,最佳实践是将镜像存放到与计算资源同区域或靠近用户的地理位置,并通过跨区域复制实现冗余与灾备,从而在性能与安全性之间取得平衡,镜像存放位置的核心考量选择镜像存放位置时,需要综合评估以下因素:访问延迟:镜像拉取速度取决于源站与目标节点……

    2026年8月21日
    7100
  • 国内云计算IT架构,哪些关键要素正引领行业变革?

    云原生、AI大模型融合、分布式云架构及安全合规,正引领国内云计算IT架构变革。

    2026年2月6日
    21200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信