当前位置: 首页 > article >正文

tr命令:替换文本中的字符

一、命令简介

tr​ 命令用于转换或删除文件中的字符。它可以从标准输入中读取数据,对数据进行字符替换、删除或压缩,并将结果输出到标准输出。

二、命令参数

格式

tr [选项] [集合1] [集合2]

选项和参数

  • -c​: 指定 集合 1 的补集。
  • -d​: 删除 集合 1 中所有字符。
  • -s​: 压缩 集合 1 中重复的字符。
  • -t​: 指定转换时使用的字符集。
  • -u​: 将 集合 1 中的小写字母转换为大写字母。
  • - ​: 用于指定字符范围,如 [a-z]​ 表示所有小写字母。
  • --help​: 显示帮助信息。
  • --version​: 显示版本信息。

三、命令示例

示例 1:替换字符

将输入中的所有小写字母转换为对应的大写字母。

echo "hello world" | tr 'a-z' 'A-Z'

输出:

HELLO WORLD

示例 2:删除字符

从输入中删除所有数字。

echo "Hello 123 World 456" | tr -d '0-9'

输出:

Hello  World 

示例 3:压缩重复字符

将输入中连续的重复字符压缩为一个字符。

echo "aaabbbccc" | tr -s 'a-z'

输出:

abc

示例 4:使用字符类

删除输入中的所有空白字符(包括空格、制表符和换行符)。

echo -e "Hello   World\n\n" | tr -d '[:space:]'

输出:

HelloWorld

输出比平时少一个换行符

Clip_2024-09-30_00-23-51

示例 5:使用集合操作

删除输入中的所有字母和数字。

echo "你好世界Hello123World" | tr -d '[:alnum:]'

输出:

 你好世界

示例 6:替换集合

将所有小写字母 a​ 替换为大写字母 A​,将所有小写字母 b​ 替换为大写字母 B​。

echo "aabbcc" | tr 'ab' 'AB'

输出:

AABBcc

示例 7:使用文件

将文件 file.txt​ 中的所有小写字母转换为大写字母,并将结果保存到 file.upper.txt​。

tr 'a-z' 'A-Z' < file.txt > file.upper.txt

file.txt 和 file.upper.txt 内容


Hello World.
你好世界。

#file.upper.txt
HELLO WORLD.
你好世界。

这些示例展示了 tr​ 命令的一些基本用法。tr​ 命令非常灵活,可以用于各种文本处理任务。

4.注意事项

  • tr​ 只能在单个字符级别上进行操作,它不支持正则表达式。
  • tr​ 命令是基于字符的,不支持处理多字节字符,因此在处理 Unicode 字符时可能会出现问题。
  • 在使用字符范围时,确保范围的正确性,否则可能产生意外的结果。
  • 注意 tr​ 命令通常是用来处理文本数据,对于二进制数据的处理可能会导致意料之外的结果。
  • 如果要保存处理的结果,只需要将输出重定位到文件。

http://www.kler.cn/news/325776.html

相关文章:

  • PHP array+array与array_merge()的区别
  • Vue.js与Flask/Django后端的协同开发研究
  • 2-3树(2-3 Tree):原理、常见算法及其应用
  • JAVA开源项目 新闻推荐系统 计算机毕业设计
  • Flink 本地 idea 调试开启 WebUI
  • 【高分系列卫星简介——高分五号卫星(GF-5)】
  • 【Go语言基础——一个Go语言项目典型的文件结构示例】
  • 扩散模型DDPM代码实践
  • 黑马头条day7-app端文章搜索
  • Python语言中的重要函数对象用法
  • 【分布式微服务云原生】8分钟探索RPC:远程过程调用的奥秘与技术实现
  • 资质申请中常见的错误有哪些?
  • C++之设计模式
  • 商标名称注册查询,到底是查询什么!
  • 云计算Openstack
  • 全局异常处理与数据绑定:深入理解Spring的@ControllerAdvice
  • Oracle可编辑视图
  • 0基础学习QT——配置开发环境
  • 国内旅游:现状与未来趋势分析
  • 二、鼠标的解锁与锁定
  • ubuntu18.04安装教程
  • CSS-Day2
  • 技术成神之路:设计模式(十六)代理模式
  • 全球55%的开发者都在用的分布式云到底怎么样?
  • Qt CMake
  • 极狐GitLab 签约比博斯特,助力新能源智能底盘企业研发提效
  • 如何创建网络白名单
  • 【深度学习】(11)--迁移学习
  • FreeRTOS的中断管理
  • AI产品经理面试题详细整理【已拿offer】