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

news2024/9/30 9:27:51

一、命令简介

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.coloradmin.cn/o/2179275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vulhub zico 2靶机详解

项目地址 https://download.vulnhub.com/zico/zico2.ova实验过程 将下载好的靶机导入到VMware中&#xff0c;设置网络模式为NAT模式&#xff0c;然后开启靶机虚拟机 使用nmap进行主机发现&#xff0c;获取靶机IP地址 nmap 192.168.47.1-254根据对比可知Zico 2的一个ip地址为…

以太网交换安全:MAC地址表安全

一、MAC地址表安全 MAC地址表安全是网络安全中的一个重要方面&#xff0c;它涉及到网络设备的MAC地址表的管理和保护。以下是对MAC地址表安全的详细介绍&#xff1a; &#xff08;1&#xff09;基本概念 定义&#xff1a;MAC地址表是网络设备&#xff08;如交换机&#xff0…

群晖安装Audiobookshelf(有声书)

一、Audiobookshelf是什么&#xff1f; Audiobookshelf是一款自托管的有声读物和播客服务器&#xff0c;用于管理和播放您的有声读物。为用户提供便捷、个性化的音频书籍管理与播放体验 支持网页端、安卓端、IOS端三端同步,支持对有声书进行不同分类。 二、安装教程 通过群晖…

【C语言进阶】一次解决字符串输入问题——为什么输入这么容易奔溃?

文章一览 写在前面一、scanf、getchar与gets函数的爱恨情仇1.1 scanf函数1.1.1 %c输入单个字符2. %s 输入字符串1.1.3 %d输入数字 1.2 getchar函数1.3 gets函数 二、不同输入情况下的使用三、回顾C语言的输入函数总结 写在前面 在之前的文章中&#xff0c;笔者详细介绍了scanf函…

基于Springboot+Vue的课程教学平台的设计与实现系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

Arm Linux 交叉编译openssl 1.1.1

一、openssl 源码下载 OpenSSL的官方网站或源代码仓库下载最新或指定版本的OpenSSL源代码。 官网地址&#xff1a; https://openssl-library.org/source/index.html 旧版本下载&#xff1a; https://openssl-library.org/source/old/index.html 这里以 1.1.1 为例 国内git…

网线最短不能短于1米?

大家都知道网线最长不能长于100米&#xff0c;但你有没有听说过“网线最短不能短于1米”这个说法呢&#xff1f;也有的朋友说不能低于0.6米。 有的网友说“‌‌网线最短1米的说法是真的。‌ 短于1米的网线电阻几乎为零&#xff0c;设备可能无法识别&#xff0c;因此在实际应用中…

Android 安卓内存安全漏洞数量大幅下降的原因

谷歌决定使用内存安全的编程语言 Rust 向 Android 代码库中写入新代码&#xff0c;尽管旧代码&#xff08;用 C/C 编写&#xff09;没有被重写&#xff0c;但内存安全漏洞却大幅减少。 Android 代码库中每年发现的内存安全漏洞数量&#xff08;来源&#xff1a;谷歌&#xff09…

【前端开发入门】html快速入门

目录 引言html基础模板内容html文档流html 标签块级元素行内元素功能性元素标签嵌套 html编码习惯总结 引言 本系列教程旨在帮助一些零基础的玩家快速上手前端开发。基于我自学的经验会删减部分使用频率不高的内容&#xff0c;并不代表这部分内容不重要&#xff0c;只是对于初学…

一站式大语言模型API调用:快速上手教程

智匠MindCraft是一个强大的AI工具及开发平台&#xff0c;支持多种大语言模型和多模态AI模型。本文将详细介绍如何通过API调用智匠MindCraft中的大语言模型&#xff0c;帮助开发者快速上手。 注册与登录 访问智匠MindCraft官网&#xff0c;注册并登录账号。 进入开发者平台&…

86、Python之鸭子类型:即便行为大于类型,还是要聊一下类型转换

引言 我们的最近几篇文章一直在聊的是鸭子类型&#xff0c;以及支撑鸭子类型相关的魔术方法的内容。其实&#xff0c;鸭子类型的本质在于“行为大于类型”。但是&#xff0c;并不是说类型不重要&#xff0c;只是在特定领域中&#xff0c;行为本身高于类型形式&#xff0c;或者…

爬虫及数据可视化——运用Hadoop和MongoDB数据进行分析

作品详情  运用Hadoop和MongoDB对得分能力数据进行分析&#xff1b;  运用python进行机器学习的模型调理&#xff0c;利用Pytorch框架对爬取的评论进行情感分析预测&#xff1b;  利用python和MySQL对网站的数据进行爬取、数据清洗及可视化。

Chainlit集成LlamaIndex实现知识库高级检索(组合对象检索)

检索原理 对象组合索引的原理 是利用IndexNode索引节点&#xff0c;将两个不同类型的检索器作为节点对象&#xff0c;使用 SummaryIndex &#xff08;它可以用来构建一个包含多个索引节点的索引结构。这种索引通常用于从多个不同的数据源或索引方法中汇总信息&#xff0c;并能…

零工市场小程序如何提高找兼职的效率?

越来越多的人们会选择成为自由职业者&#xff0c;或者在空暇时兼职来获取酬劳&#xff0c;那么传统的找兼职方式&#xff0c;如&#xff1a;中介公司、招聘广告等。 如今大家的生活都已经进入了“快节奏”&#xff0c;零工市场小程序针对这样的问题而提出了解决方案&#xff0…

python Scrapy 框架 demo

文章目录 前言python Scrapy 框架 demo1. 安装2. 百度热搜爬取demo2.1. 初始化项目2.2. 修改 items.pyitems.py2.3. 创建 spiders/baidu_spider.py2.4. 修改 pipelines.py2.5. 修改 settings.py 3. settings.py 相关配置说明4. 启动爬虫测试 前言 如果您觉得有用的话&#xff0…

python+requests接口测试

pythonrequest 一、调用的方法 requests是一个第三方库 &#xff08;1&#xff09; a、下载地方库pip install requests b、pycaharm中下载 &#xff08;2&#xff09;导入requests库 &#xff08;3&#xff09;requests中的三种调用方法 第一种&#xff1a; requests.…

算法训练营打卡Day18

目录 二叉搜索树的最小绝对差二叉搜索树中的众数二叉树的最近公共祖先额外练手题目 题目1、二叉搜索树的最小绝对差 力扣题目链接(opens new window) 给你一棵所有节点为非负值的二叉搜索树&#xff0c;请你计算树中任意两节点的差的绝对值的最小值。 示例&#xff1a; 思…

时间复杂度及空间复杂度(简略)

目录 时间复杂度空间复杂度 时间复杂度 计算时间复杂度时&#xff0c;我们只需计算大致执行次数&#xff0c;再用大O的渐进表示法就可以了 常见的复杂度为O(N),O(1),O(N^2)的几个情况这里就不提了&#xff0c;下面是几个相对来说需要分析的算法 算法1&#xff1a; // 计算str…

【Python报错已解决】TypeError: ‘int‘ object is not subscriptable

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

如何在实际开发中深入使用 yalantinglibs 编译期反射库

yaLanTingLibs 是阿里云开源的现代 C 基础工具库的集合&#xff0c;包括序列化、http、rpc、协程、编译期反射、metric 和日志等库&#xff0c;可以帮助 C 开发者快速构建高性能的 C 应用。2024 云栖大会操作系统技术 Workshop 上&#xff0c;阿里云智能集团高级技术专家、pure…