静海网站建设/百度爱采购推广平台
目录
内容来源:
【GUN】【tr】指令介绍
【busybox】【tr】指令介绍
【linux】【tr】指令介绍
使用示例:
转换字符 - 默认
转换字符 - 不翻译指定字符数组
此指令目前接触少,用得少,把精力放到其他常用指令上
常用组合指令:
指令不常用/组合用法还需继续挖掘:
内容来源:
GUN : Coreutils - GNU core utilities
busybox v1.36.1 : 【busybox记录】【shell指令】基于的Busybox的版本和下载方式-CSDN博客
【GUN】【tr】指令介绍
tr:翻译、压缩和/或删除字符
简介:tr [option]... string1 [string2]tr 执行下列操作之一,将标准输入复制到标准输出。翻译,并可选择压缩结果中重复的字符,挤压重复的字符,删除字符,删除字符,然后从结果中挤出重复的字符。操作数string1和string2定义了字符数组array1和array2。默认情况下,array1列出tr操作的输入字符,array2列出相应的翻译。在某些情况下,第二个操作数会被省略。该程序接受以下选项。参见第2章[常见选项],第2页。
选项必须在操作数之前。
‘-c’
‘-C’
‘--complement’使用它的补码(string1没有指定的所有字符),并按升序排列,而不是array1。在多字节语言环境中使用此选项时要谨慎,因为其含义并不总是明确或可移植。参见第9.1.1节[字符数组],第82页。
‘-d’
‘--delete’删除array1中的字符;不要翻译。
‘-s’
‘--squeeze-repeats’将最后一个指定数组中列出的重复字符的每个序列替换为该字符的一次出现。
‘-t’
‘--truncate-set1’将array1的长度截断为array2的长度。
退出状态为零表示成功,非零值表示失败。
9.1.1指定字符数组虽然string1和string2操作数看起来很相似,但它们不是正则表达式。相反,它们只是表示字符数组。作为POSIX的GNU扩展,空字符串操作数表示空字符数组。string1和string2的解释取决于语言环境。GNU tr完全只支持安全的单字节语言环境,其中每个可能的输入字节表示一个字符。不幸的是,这意味着GNU tr不会以您所期望的方式处理类似`tr¨o Ł`这样的命令,因为(假设是UTF-8编码)这等价于`tr '\303\266' '\305\201'`,并且GNU tr将简单地将所有的`\303`字节转换为`\305`字节,等等。POSIX没有明确指定tr在某些区域中的行为,这些区域中的字符使用字节序列而不是单个字节表示,或者数据可能包含编码错误的无效字节。为了避免这方面的问题,您可以使用类似于`LC_ALL=C tr`的shell命令而不是普通的tr,在安全的单字节区域设置中运行tr。尽管大多数字符只是简单地用string1和string2表示自己,但为了方便,这些字符串也可以包含下面列出的简写。有些简写只能在string1或string2中使用,如下所述。反斜杠转义可以识别下列反斜杠转义序列:‘\a’ Bell (BEL, Control-G).‘\b’ Backspace (BS, Control-H).‘\f’ Form feed (FF, Control-L).‘\n’ Newline (LF, Control-J).‘\r’ Carriage return (CR, Control-M).‘\t’ Tab (HT, Control-I).‘\v’ Vertical tab (VT, Control-K).‘\ooo’ 值为ooo的8位字节,它是反斜杠之后1到3个八进制数字的最长序列。为了可移植性,ooo应该表示一个能装进8位的值。作为POSIX的GNU扩展,如果值不能容纳,则只使用ooo的前两位数字,例如,' \400 '等同于' \0400 ',表示两个字节的序列。‘\\’ 一个反斜杠。如果未转义的反斜杠后面没有字符,则为错误。作为一个GNU扩展,反斜杠后跟一个未在上面列出的字符会被解释为该字符,删除任何特殊意义;这可以用于转义字符'['和'-',当它们是特殊字符时。范围符号'm-n'按升序扩展到从m到n的字符。m不应排在n之后;如果是,就会导致错误。例如,`0-9`等同于`0123456789`。GNU tr不支持使用方括号将范围括起来的System V语法。这种格式指定的翻译有时会按预期工作,因为括号经常被音译为它们自己。但是,应该避免使用它们,因为它们有时表现得出乎意料。例如,`tr -d '[0-9]'`会同时删除括号和数字。许多历史上常见的甚至是被接受的范围的使用都不是完全可移植的。例如,在EBCDIC主机上使用`A-Z`范围将不会实现大多数人所期望的效果,因为`A`到`Z`在ASCII中是不连续的。解决这个问题的一种方法是使用字符组(见下文)。否则,枚举范围的成员是最可移植的(也是最难看的)方式。重复字符string2中的表示法'[c*n]'扩展为字符c的n个副本。因此,'[y*6]'与'yyyyyy'相同。string2中的'[c*]'表示法可以扩展为使array2和array1一样长的c的副本。如果n以'0'开头,则以八进制解释,否则以十进制解释。0值的n被视为不存在。字符类符号`[:class:]`扩展到(预定义的)类class中的所有字符。当同时提供--delete (-d)和--squeeze-repeats (-s)选项时,可以在string2中使用任何字符类。否则,string2只接受lower和upper字符组,而且只有在string1中相同的相对位置指定了对应的字符组(upper和lower)时才接受。这样做指定了大小写转换。除了大小写转换之外,类中的字符没有特定的顺序。类名如下。当类名无效时,将导致错误。alnum 字母和数字。alpha 字母。blank 水平空白。cntrl 控制字符。digit 位数。graph 可打印字符,不包括空格。lower 小写字母。print 可打印字符,包括空格。punct 常用的标点符号。space 水平或垂直空白。upper 大写字母。xdigit 十六进制数字。等价类语法`[=c=]`展开为与c相等的所有字符,没有特定的顺序。只有同时给出--delete (-d)和--squeeze-repeats -s时,string2中才允许使用这些等价类。虽然等价类旨在支持非英语字母,但似乎没有标准的方法来定义它们或确定它们的内容。因此,它们在GNU tr中没有完全实现。每个字符的等价类只包含该字符,没有特殊用途。9.1.2转换当string1和string2都给定且没有指定--delete (-d)选项时,tr将执行转换。tr将其输入中array1中的每个字符转换为array2中的相应字符。不在array1中的字符会原原不动地传递。作为POSIX的GNU扩展,当一个字符在array1中出现多次时,只使用最后一个实例。例如,下面两个命令是等价的:tr aaa xyztr a ztr的一个常见用途是将小写字符转换为大写字符。这可以通过多种方式实现。下面是其中的三个:tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZtr a-z A-Ztr '[:lower:]' '[:upper:]'但是,像a-z这样的范围在C语言环境之外是不可移植的。在tr执行转换时,array1和array2通常具有相同的长度。如果array1比array2短,则忽略array2末尾的额外字符。另一方面,让array1比array2长是不可移植的;POSIX表示结果未定义。在这种情况下,BSD tr根据需要多次重复array2的最后一个字符,从而将array2补全到array1的长度。System V tr将array1截断为array2的长度。默认情况下,GNU tr像BSD tr一样处理这种情况。当给出--truncte -set1 (-t)选项时,GNU tr会像System V tr一样处理这种情况。对于除转换之外的操作,该选项将被忽略。在这种情况下,类似于System V tr的做法打破了相对常见的BSD惯用法:tr -cs A-Za-z0-9 '\012'因为它只将0字节(array1补码中的第一个元素)转换为换行符,而不是将所有非字母数字转换为换行符。顺便说一下,上面的用法是不可移植的,因为它使用了范围,而且它假定newline的八进制代码为012。下面是一种更好的写法:tr -cs '[:alnum:]' '[\n*]'
9.1.3压缩重复和删除如果只提供--delete (-d)选项,tr会删除array1中的所有输入字符。当只给出--squeeze-repeats (-s)选项而不进行translate时,tr将array1中重复字符的每个输入序列替换为该字符的一次出现。当同时给出--delete和--squeeze-repeats时,tr首先使用array1执行任何删除操作,然后使用array2从任何剩余字符中挤压重复。翻译时也可以使用--squeeze-repeats选项,在这种情况下,tr首先执行翻译,然后使用array2从任何剩余字符中挤压重复。下面是一些示例来说明各种选项组合:删除所有0字节:tr -d '\0'将所有单词单独连成一行。该函数将所有非字母数字字符转换为换行符,然后将每个包含重复换行符的字符串压缩为一个换行符:tr -cs '[:alnum:]' '[\n*]'将每个重复的换行符序列转换为一个换行符。例如,删除空行:tr -s '\n'查找文档中出现重复的单词。例如,人们经常写“the the”,重复的单词之间用换行符分隔。下面的Bourne shell脚本首先将每个标点符号和空白字符序列转换为一个换行符。这会将每个“单词”单独放在一行上。接下来,它将所有大写字符映射为小写,最后使用-d选项运行uniq,只打印出重复的单词。#!/bin/shcat -- "$@" \| tr -s '[:punct:][:blank:]' '[\n*]' \| tr '[:upper:]' '[:lower:]' \| uniq -d删除一小部分字符通常很简单。例如,要删除所有的`a`、`x`和`M`,你可以这样做:tr -d axM然而,当`-`是这些字符之一时,它可能会很棘手,因为`-`有特殊的含义。执行与上面相同的任务,但同时删除所有的`-`字符,我们可以尝试tr -d -axm,但这会失败,因为tr会尝试将-a解释为命令行选项。或者,我们可以尝试在字符串中放入连字符tr -d a-xm,但这也不起作用,因为这会让tr将a-x解释为字符范围'a'…'x',而不是三个字符。解决这个问题的一种方法是把连字符放在字符列表的末尾:tr -d axM-或者你可以使用`--`来终止选项处理:tr -d -- -axM
【busybox】【tr】指令介绍
【linux】【tr】指令介绍
[root@localhost bin]# tr --help
用法:tr [选项]... SET1 [SET2]
Translate, squeeze, and/or delete characters from standard input,
writing to standard output.-c, -C, --complement use the complement of SET1-d, --delete delete characters in SET1, do not translate-s, --squeeze-repeats replace each sequence of a repeated characterthat is listed in the last specified SET,with a single occurrence of that character-t, --truncate-set1 first truncate SET1 to length of 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:] 所有的十六进制数[=字符=] 所有和指定字符相等的字符Translation occurs if -d is not given and both SET1 and SET2 appear.
-t may be used only when translating. SET2 is extended to length of
SET1 by repeating its last character as necessary. Excess characters
of SET2 are ignored. Only [:lower:] and [:upper:] are guaranteed to
expand in ascending order; used in SET2 while translating, they may
only be used in pairs to specify case conversion. -s uses the last
specified SET, and occurs after translation or deletion.GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 tr 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreutils/tr>
或者在本地使用:info '(coreutils) tr invocation'
使用示例:
转换字符 - 默认
把1-9转化成a-g,不足的以末尾字符为准
指令: tr 1-9 a-g
转换字符 - 不翻译指定字符数组
-d 选项
示例: 不翻译abc
指令: tr -d abc
此指令目前接触少,用得少,把精力放到其他常用指令上
NA
常用组合指令:
NA
指令不常用/组合用法还需继续挖掘:
相关文章:

【busybox记录】【shell指令】tr
目录 内容来源: 【GUN】【tr】指令介绍 【busybox】【tr】指令介绍 【linux】【tr】指令介绍 使用示例: 转换字符 - 默认 转换字符 - 不翻译指定字符数组 此指令目前接触少,用得少,把精力放到其他常用指令上 常用组合指令…...

Mac虚拟机软件哪个好用 mac虚拟机parallels desktop有什么用 Mac装虚拟机的利与弊 mac装虚拟机对电脑有损害吗
随着多系统使用需求的升温,虚拟机的使用也变得越来越普遍。虚拟机可以用于创建各种不同的系统,并按照要求设定所需的系统环境。另外,虚拟机在Mac电脑的跨系统使用以及测试软件系统兼容性等领域应用也越来越广泛。 一、Mac系统和虚拟机的区别 …...

Type-C转音频(USB2.0数据传输)+PD充电芯片乐得瑞LDR6500/LDR6023
LDR6500 USB-C DRP 接口 USB PD 通信芯片概述 Type-C转音频(USB2.0数据传输)PD充电芯片乐得瑞LDR6500LDR6500是乐得瑞科技针对USB Type-C标准中的Bridge设备而开发的USB-C DRP(Dual Role Port,双角色端口)接口USB PD(Power Deliv…...

【busybox记录】【shell指令】expand
目录 内容来源: 【GUN】【expand】指令介绍 【busybox】【expand】指令介绍 【linux】【expand】指令介绍 使用示例: 把制表符转化为空格 - 默认输出 把制表符转化为空格 - 修改制表符转空格的个数 把制表符转化为空格 - 修改制表符转空格的个数…...

软件测试—— 接口测试之通讯流程相关概念
通讯流程 1、协议 通讯规则 2、HTTP协议 协议的一种 3、接口规范文档 如何发请求的要求文档,获取什么响应内容的说明文档(相当于菜单)...

AT32 雅特力CAN详细使用说明配置细则
CAN 过滤器使用说明 CAN 过滤器相当于关卡,每当收到一条报文时,CAN 要先将收到的报文从这些过滤器上"过滤"一下,能通 过的报文是有效报文,收进相关联 FIFO(FIFO0 或 FIFO1),不能通过的…...

【机器学习】集成方法---Boosting之AdaBoost
一、Boosting的介绍 1.1 集成学习的概念 1.1.1集成学习的定义 集成学习是一种通过组合多个学习器来完成学习任务的机器学习方法。它通过将多个单一模型(也称为“基学习器”或“弱学习器”)的输出结果进行集成,以获得比单一模型更好的泛化性…...

AI大模型探索之路-训练篇11:大语言模型Transformer库-Model组件实践
系列篇章💥 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据集概…...

鸿蒙内核源码分析(工作模式篇) | CPU的七种工作模式
本篇说清楚CPU的工作模式 工作模式(Working mode) 也叫操作模式(Operating mode)又叫处理器模式(Processor mode),是 CPU 运行的重要参数,决定着处理器的工作方式,比如如何裁决特权级别和报告异…...

5月6(信息差)
🌍一次预测多个token,Meta新模型推理加速3倍,编程任务提高17% https://hub.baai.ac.cn/view/36857 🎄 LeetCode 周赛超越 80% 人类选手,推理性能超 Llama3-70B。 ✨ 我国量子计算机实现“四算合一” 实现通算、…...

Qt在任务栏图标和系统托盘图标上显示红点
在任务栏图标上显示红点 关键类:QWinTaskbarButton #include <QWinTaskbarButton>QPointer<QWinTaskbarButton> taskbarBtn nullptr; if (!taskbarBtn) {taskbarBtn new QWinTaskbarButton(window);taskbarBtn->setWindow(window->windowHand…...

springboot拦载器
1、拦载器 package com.Interceptor;import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView;import javax.security.auth.login.Log…...

知道创宇安全服务实习
自我介绍攻防演练讲一下,我讲到了内网利用,用到了frp/nps这种nps直接扫不会有被发现吗?cs搭建在vps,有做什么隐藏吗,(端口或者cdn之类的)域前置了解吗cs上传的木马免杀了吗问了linux怎么查看进程…...

SGP.22-V.3.1-安全1
有任何关于GSMA\IOT\eSIM\RSP\业务应用场景相关的问题,欢迎W: xiangcunge59 一起讨论, 共同进步 (加的时候请注明: 来自CSDN-iot). 2.6.4.4 Command TLV MACing and Encryption 在提供的文件 "RSP Technical Specification Version 3.1 Final" 中&a…...

STM32单片机ADC功能详解
文章目录 1. ADC概述 2. ADC结构图 3. 引脚定义 4. 转换模式 5. 数据对齐 6. 转换时间 7. 硬件电路 8. STM32使用ADC单/多通道检测数据 1. ADC概述 功能:ADC是一个将模拟信号(如电压)转换为数字信号的设备。在微控制器中,…...

47.Redis学习笔记
小林coding -> 图解redis的学习笔记 文章目录 Rediswindwos安装docker安装redis启动redis使用RDM访问虚拟机中的redispython连接redis缓存穿透、击穿、雪崩基本数据类型高级数据类型高并发指标布隆过滤器分布式锁Redis 的有序集合底层为什么要用跳表,而不用平衡…...

数控六面钻适用场景-不止家具制造
在快节奏的现代生活中,家具作为我们生活的重要组成部分,其美观度和实用性日益受到人们的关注。而在这背后,一个不可或缺的“工匠”正默默地发挥着它的作用——那就是数控六面钻。 数控六面钻,顾名思义,是一种高度自动…...

【力扣】86. 分隔链表
86. 分隔链表 题目描述 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1: 输入:head […...

海云安受邀参加诸子云 4.27南京「金融互联网」私董会
4月27日,“安在新媒体网安用户行业活动”第四期私董会在南京顺利举办。活动以“金融&互联网”为主题,邀请十余位业内资深的甲方用户以及典型厂商代表。摒弃传统的议题分享,采取“随时问答,自由讨论”的形式,提问题…...

docker操作使用注意事项
文章目录 一、运行docker二、拉取的镜像存放位置1、查询所有拉取的镜像2、查询所有安装的镜像3、查询docker应用的所有信息 一、运行docker 该命令执行后是在窗口下运行的,关闭或退出后docker应用会停止运行 -p:设置绑定端口映射,10022对应…...

Leetcode—163. 缺失的区间【简单】Plus
2024每日刷题(126) Leetcode—163. 缺失的区间 实现代码 class Solution { public:vector<vector<int>> findMissingRanges(vector<int>& nums, int lower, int upper) {int n nums.size();vector<vector<int>> an…...

Ansible自动化运维工具 - playbook 剧本编写
一. inventory 主机清单 Inventory 支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或多个主机组内。 1.1 inventory 中的变量含义 Inventory 变量名 含义ansible_hostansible连接节点时的IP地址ansible_port连接对方…...

Web前端一套全部清晰 ⑥ day4 CSS.2 复合选择器、CSS特性、背景属性、标签的显示模式
别人的议论,那是别人的,你的人生,才是你的 —— 24.5.7 一、复合选择器 定义:由两个或多个基础选择器,通过不同的方式组合而成 作用:更准确、更高效的选择目标元素(标签) 1.后代选择…...

Linux 认识与学习Bash——3
在Linux bash中,数据流重定向是指将命令的输出从默认的标准输出(通常是终端)重定向到其他位置,如文件或另一个命令的输入。这是通过使用特定的符号来实现的。例如,>用于将输出重定向到文件,而<用于将…...

匠心精神与创新力量:构筑网络安全的新防线
一、匠心精神在网络安全中的重要性 匠心精神代表着对工作的专注和对质量的极致追求。在网络安全领域,这意味着对每一个安全漏洞的深入挖掘,对每一项安全技术的精心打磨。亿林网络李璐昆的提名,正是对其在网络安全领域匠心精神的认可。 二、…...

接口信息解析
目录 一、通讯流程 二、如何获取接口信息--抓包 1、抓包步骤: 2、抓包工具 接口文档:又称为API文档,是由后端开发编写,用来描述接口信息的文档 一、通讯流程 功能(比如:登录)请求(请求路径、请求方式、…...

scikit-learn实现单因子线性回归模型
1.是什么: 针对机器学习提供了数据预处理,分类,回归等常见算法的框架 2.基于scikit-learn求解线性回归的问题: 2.1.求解a,b对新数据进行预测: 2.2评估模型表现(y和y’的方差MSE)…...

【笔记】Anaconda命令提示符(Anaconda Prompt)操作
通过anaconda配置python环境有时需要conda安装一些包或者文件,这里作为一个笔记记录如何打开Anaconda命令提示符(Anaconda Prompt),并用conda操作 1.打开Anaconda命令提示符(Anaconda Prompt) 可直接在搜…...

Unity射击游戏开发教程:(12)使用后处理
后处理 后期处理是向您的游戏场景添加一个或多个滤镜,确实可以为您的游戏提供精美的外观。在本文中,我们将讨论如何在 Unity 中设置后处理系统,从那里您可以探索和试验 Unity 提供的所有过滤器。 首先,我们需要从包管理器添加后处理器堆栈。包管理器是 Unity 产品的集合,…...

python:机器学习特征优选
作者:CSDN _养乐多_ 在Python中进行机器学习特征选择的方法有很多种。以下是一些常用的方法: 过滤法(Filter Methods):通过统计方法或者相关性分析来评估每个特征的重要性,然后选择最相关的特征。常用的…...