tr字符处理命令,用于实现转换或者删除字符

2024-08-24 13:58

本文主要是介绍tr字符处理命令,用于实现转换或者删除字符,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

4.6 tr字符处理命令,用于实现转换或者删除字符

4.6.1 语法

用法:tr [选项]… SET1 [SET2]
从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。

注意:不带参数:将SET2中的每个字符替换SET1中的每个字符,字符是顺序替换,如果SET1的字符长度大于SET2,那么将SET1中多出来的字符用SET2中的最后一个字符替换。

4.6.2 简单示例
  • 【tr ‘ab‘AB’】将之后你输入的a替换成A,b替换成B
    在这里插入图片描述
  • 【tr ‘ab’ ‘AB’ < /etc/fstab】将文件/ect/fstab中的内容输出到屏幕,在输出时将a替换成A,b替换成B
    在这里插入图片描述
  • 【tr ‘a-z’ ‘A-Z’ </etc/fstab】将文件/etc/fstab中的内容输出到屏幕,在输出时将所有小写字母替换成大写字母
    在这里插入图片描述
  • 【tr -d ‘ab’ </etc/fstab】将文件/etc/fstab中的内存输入到屏幕,输出时将文件中的ab字母全部删除后显示。
    在这里插入图片描述
  • 【tr -s ‘ftp’ ‘abc’ </etc/fstab】输出显示fstab中的内容,输出时将梁旭的ftp字符串替换成连续的abc字符串
    在这里插入图片描述
  • 【echo “name” |tr -d -c ‘ae\n’】删除除了ae\n的字符外的其他字符。对【echo “name” |tr -d ‘ae\n’】做删除取反操作
    在这里插入图片描述
4.6.3 常用参数
  • 【-d str1】删除字符串str1中所匹配到的字符。
  • 【-s str1 str2】将连续的str1字符串替换成连续的str2字符串
  • 【-t str1 str2】将SET2中的每个字符替换SET1中的每个字符,字符字符顺序1对1替换,无论SET1还是SET2哪个长,只替换对应的字符,多出的不替换。
  • 【-c】取反操作,取数据流中SET1中指定字符的补集。 通常结合-d使用
  • 【字符集代码】
    * [:alnum:]:字母和数字,可以用来替代’a-zA-Z0-9’
    * [:alpha:]:字母,可以用来替代’a-zA-Z’
    * [:cntrl:]:控制(非打印)字符
    * [:digit:]:数字,可以用来替代’0-9’
    * [:graph:]:图形字符
    * [:lower:]:小写字母,可以用来替代’a-z’
    * [:print:]:可打印字符
    * [:punct:]:标点符号
    * [:space:]:空白字符
    * [:upper:]:大写字母,可以用来替代’A-Z’
    * [:xdigit:]:十六进制字符
    * \\ 反斜杠
    * \a 终端鸣响
    * \b 退格
    * \f 换页
    * \n 换行
    * \r 回车
    * \t 水平制表符
    * \v 垂直制表符
    * \o null字符

4.6.4 帮助(sed --help)

[root@gdy103 ~]# tr -- help
tr: "help" 后缺少操作数
当进行替换操作时必须给定两组字符串。
请尝试执行"tr --help"来获取更多信息。
[root@gdy103 ~]# tr --help
用法:tr [选项]... SET1 [SET2]
从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。-c, -C, --complement		首先补足SET1-d, --delete			删除匹配SET1 的内容,并不作替换-s, --squeeze-repeats	如果匹配于SET1 的字符在输入序列中存在连续的重复,在替换时会被统一缩为一个字符的长度-t, --truncate-set1		先将SET1 的长度截为和SET2 相等--help		显示此帮助信息并退出--version		显示版本信息并退出SET 是一组字符串,一般都可按照字面含义理解。解析序列如下:\NNN	八进制值为NNN 的字符(1 至3 个数位)\\		反斜杠\a		终端鸣响\b		退格\f		换页\n		换行\r		回车\t		水平制表符\v		垂直制表符字符1-字符2	从字符1 到字符2 的升序递增过程中经历的所有字符[字符*]	在SET2 中适用,指定字符会被连续复制直到吻合设置1 的长度[字符*次数]	对字符执行指定次数的复制,若次数以 0 开头则被视为八进制数[:alnum:]	所有的字母和数字[:alpha:]	所有的字母[:blank:]	所有呈水平排列的空白字符[:cntrl:]	所有的控制字符[:digit:]	所有的数字[:graph:]	所有的可打印字符,不包括空格[:lower:]	所有的小写字母[:print:]	所有的可打印字符,包括空格[:punct:]	所有的标点字符[:space:]	所有呈水平或垂直排列的空白字符[:upper:]	所有的大写字母[:xdigit:]	所有的十六进制数[=字符=]	所有和指定字符相等的字符仅在SET1 和SET2 都给出,同时没有-d 选项的时候才会进行替换。
仅在替换时才可能用到-t 选项。如果需要SET2 将被通过在末尾添加原来的末字符的方式
补充到同SET1 等长。SET2 中多余的字符将被省略。只有[:lower:][:upper:]
以升序展开字符;在用于替换时的SET2 中以成对表示大小写转换。-s 作用于SET1,既不
替换也不删除,否则在替换或展开后使用SET2 缩减。请向bug-coreutils@gnu.org 报告tr 的错误
GNU coreutils 项目主页:<http://www.gnu.org/software/coreutils/>
GNU 软件一般性帮助:<http://www.gnu.org/gethelp/>
请向<http://translationproject.org/team/zh_CN.html> 报告tr 的翻译错误
要获取完整文档,请运行:info coreutils 'tr invocation'
[root@gdy103 ~]#

这篇关于tr字符处理命令,用于实现转换或者删除字符的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1102680

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作