0028. shell命令--tr

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

目录

28. shell命令--tr

功能说明

语法格式

选项说明

实践操作


28. shell命令--tr

功能说明

        tr 是一个在 Unix 和 Linux 系统中非常有用的命令,它用于从标准输入中替换或删除字符,并将结果写入标准输出。tr 命令主要用于处理文本数据,特别是进行字符替换和删除操作。

        tr 命令来自英文单词 transform 的缩写,中文译为“转换”,其功能是转换字符。tr 命令是一款批量字符转换、压缩、删除的文本工具,但仅能从标准输入中读取文本内容,需要与管道符或输入重定向操作符搭配使用。

        tr 命令 可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。

语法格式

SYNOPSIS
       tr [OPTION]... SET1 [SET2]

选项说明

  • -c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换,取代所有不属于第一字符集的字符
  • -d, --delete:删除指令字符
  • -s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符
  • -t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等(这通常是默认行为,但 -t 选项可以用于明确这一点)。
  • --help:显示程序用法信息
  • --version:显示程序本身的版本信息

字符集合的范围:

\NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)
\\ 反斜杠
\a Ctrl-G 铃声
\b Ctrl-H 退格符
\f Ctrl-L 走行换页
\n Ctrl-J 新行
\r Ctrl-M 回车
\t Ctrl-I tab键
\v Ctrl-X 水平制表符
CHAR1-CHAR2 :字符范围从 CHAR1 到 CHAR2 的指定,范围的指定以 ASCII 码的次序为基础,只能由小到大,不能由大到小。
[CHAR*] :这是 SET2 专用的设定,功能是重复指定的字符到与 SET1 相同长度为止
[CHAR*REPEAT] :这也是 SET2 专用的设定,功能是重复指定的字符到设定的 REPEAT 次数为止(REPEAT 的数字采 8 进位制计算,以 0 为开始)
[:alnum:] :所有字母字符与数字
[:alpha:] :所有字母字符
[:blank:] :所有水平空格
[:cntrl:] :所有控制字符
[:digit:] :所有数字
[:graph:] :所有可打印的字符(不包含空格符)
[:lower:] :所有小写字母
[:print:] :所有可打印的字符(包含空格符)
[:punct:] :所有标点字符
[:space:] :所有水平与垂直空格符
[:upper:] :所有大写字母
[:xdigit:] :所有 16 进位制的数字
[=CHAR=] :所有符合指定的字符(等号里的 CHAR,代表你可自订的字符)

实践操作

1. 字符替换
1.1 字符替换1:将输入中的所有小写字母 'a' 替换为 'x'
echo {a..d}{a..d}
echo {a..d}{a..d} |tr 'a' 'x'    
echo {a..d}{a..d} |tr 'a' 'X'    #将输入中的所有小写字母 'a' 替换为 'X'
echo {a..d}{a..d} |tr 'a' 'MineGi'    #实验一下
echo {a..d}{a..d} |tr 'ab' 'MG'    #实验一下

1.2 字符替换2:将输入中的所有小写字母替换为大写字母
echo {a..d}{a..d} 
echo {a..d}{a..d} |tr 'a-z' 'A-Z'
echo {a..d}{a..d} |tr '[:lower:]' '[:upper:]'
echo "hello world" |tr '[:lower:]' '[:upper:]'

1.3 空格替换:转换其它控制字符
echo {A..H}
echo {1..8}.txt
echo {A..H} |tr ' ' '\n'    #:\n新行
echo {1..8}.txt |tr ' ' '\n'
echo {a..c}{0..9} |tr ' ' '\v'
echo {a..c}{0..9} |tr ' ' '\a'    #\a:响铃
echo {a..c}{0..9} |tr ' ' '\b'    #\b:退格符
echo {a..c}{0..9} |tr ' ' '\r'    #\r:回车
echo {a..c}{0..9} |tr ' ' '\t'    #\t:tab键
echo {a..c}{0..9} |tr ' ' '\v'    #\v: 水平制表符
echo {a..c}{0..9} |tr ' ' '\v' |less

2. 字符删除
2.1 删除输入中的所有数字
echo {a..c}{0..9} |tr ' ' '\a' 
echo {a..c}{0..9} |tr ' ' '\a' |tr -d '0-9'

2.2 删除输入中的所有字母
echo {a..c}{0..9} |tr ' ' '\a' |tr -d 'a-z'
echo {a..z} {A..Z} 
echo {a..z} {A..Z} {1..9}
echo {a..z} {A..Z} {1..9} |tr ' ' '\a'
echo {a..z} {A..Z} {1..9} |tr ' ' '\a' |tr -d 'a-z'    #还是有字母
echo {a..z} {A..Z} {1..9} |tr ' ' '\a' |tr -d 'a-Z'    #报错,那咋整
echo {a..z} {A..Z} {1..9} |tr ' ' '\a' |tr -d  'a-z' 'A-Z'    #还是报错
echo {a..z} {A..Z} {1..9} |tr ' ' '\a' |tr -d '0-9'    #啊哦,把数字删了
echo {a..z} {A..Z} {1..9} |tr ' ' '\a' |tr -cd '0-9'    #那取反好了
echo {a..z} {A..Z} {1..9} |tr ' ' '\a' |tr -cd '0-9 \n'    #加个换行
echo {a..z} {A..Z} {1..9} |tr ' ' '\a' |tr -d [:alpha:]    #这样也是可以的

3. 字符压缩
echo "hello    world"
echo "hello    world" | tr -s ' '
echo aaabbbccc |tr -s [:alpha:]
echo {a..c}{a..c}{a..c} |tr ' ' '\a'
echo {a..c}{a..c}{a..c} |tr ' ' '\a' |tr -s [:alpha:]    #压缩字母
echo "thissss is      a text linnnnnnne." | tr -s ' sn'    #压缩空格,s和n

4. 数字相加
4.1 方法1
echo {1..9} | xargs -n1 | echo $[ $(tr '\n' '+') 0 ]    #巧妙使用tr做数字相加操作,先看下结果
[ 1+2 ]    #先了解数字相加
echo $[ 1+2 ]    #将数字相加的结果打印出来
echo $[ 1+2+3+4+5+6+7+8+9 ]    #这个是手写的,比较麻烦
echo {1..9}    #先打印1到9这个数字
echo {1..9} |xargs -n1    #使用xargs进行换行
echo {1..9} |tr ' ' '\n'    #使用我们刚学的也能达到效果
echo {1..9} |xargs -n1 |tr '\n' '+'    #将换行换成+号
echo {1..9} |xargs -n1 |echo $(tr '\n' '+')    #打印一下,就差结尾+号了
echo {1..9} |xargs -n1 |echo [$(tr '\n' '+')0 ]    #填一个0就行了
echo {1..9} |xargs -n1 |echo $[$(tr '\n' '+')0 ]    #再次加个$符

4.2 方法2
echo {1..9} |tr '\ ' '+'    #使用我们刚学的就能得到1+2..9
echo $(echo {1..9} |tr '\ ' '+')    #$()的用法
[ $(echo {1..9} |tr '\ ' '+') ]   #数字相加
echo $[ $(echo {1..9} |tr '\ ' '+') ]  #打印结果 

5. 删除Windows文件"回车"造成的'^M'字符
a.在Windows上新建文本文件windows.txt,然后输入几行内容(有回车就行)
b.直接上传或通过xftp上传到Linux系统里
注意:
    直接上传需要Linux安装 Lrzsz 这个软件包
    rpm -qa lrzsz    #查看是否有这个包
    #yum install -y lrzsz    #若没有,CentOS上使用这条命令安装(需要联网和有yum源)
c.查看'^M'字符
cat windows.txt    #直接查看不出来
cat -A windows.txt    #使用-A选项
d.删除该字符
tr -s "\r" "\n" <windows.txt |cat -A    #查看有没有效果
cat windows.txt |tr -d "\r" >newfile1.txt    #将处理过的内容写入新文件里
cat -A newfile1.txt
dos2unix -n windows.txt newfile2.txt    #当然也有专门的命令来干这个事情,dos2unix命令后面再细节
cat -A newfile2.txt

shell脚本---常用命令tr linux 常用命令tr --- 使用实例介绍 阅读详情

相关推荐

Linux time命令三重时间解析:user、system、elapsed深度辨析

Linux性能分析中,time命令报告的user、system和elapsed(real)时间构成基础但易被误读的三重时间模型。user时间反映进程在用户态消耗的CPU周期,system时间体现内核态服务开销(如系统调用处理),而elapsed是包含I/O等待、调度延迟等在内的真实墙钟时间。三者关系并非简单相加,而是揭示程序计算密集度、内核依赖强度与外部资源瓶颈的关键线索。正确区分它们,是定位Python脚本高延迟、CI构建耗时漂移、容器CPU限频异常等问题的前提。本文基于GNU time与Bash内置t

读书、思考、生活 419

Shell中的tr命令

Shell中的tr命令 tr (translate的简写) 这里用到的意思是转化,转变,转换 -c #-C,-complement 用集合1中的字符串替换,要求字符集为ASCII -d #-delete 删除集合1中的字符而不是转换 -s #删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串 -t #先删除第一子符集较第二字符集多出的字符 ...

qq_43309149的博客 7672

基于CODESYS与EtherCAT的步进电机单轴控制实践

本文详细介绍了基于CODESYS平台与EtherCAT总线技术实现步进电机单轴控制的完整实践流程。从硬件选型、软件工程创建、EtherCAT主从站配置,到运动控制功能块编程与在线调试,手把手指导读者完成从零到一的搭建,并提供了常见问题的排坑指南,帮助自动化开发者快速掌握这一高效、灵活且成本可控的工业运动控制解决方案。

hh234的博客 468

shell命令tr

简介: tr常用来编写单行命令,可以对来自标准输入的字符进行替换,删除以及压缩。它可以将一组字符变成另一组字符,因而通常也被称为转换(translate)命令。 预备知识: 1:tr只能通过stdin(标准输入,而无法通过命令行参数来接收输入)。它的调用格式 tr [options] set1 set2 实战演练: 1 将输入的字符由大写转换成小写 echo "HELLO" | tr 'A-Z' 'a-z' 2 加解密 echo "hello" | tr 'ABCDEFGHIJKLMNOPQRSTUVWX

weixin_40026739的博客 5581

shell基础12:tr

关于trt r用来从标准输入中通过替换或删除操作进行字符转换。t r主要用于删除文件中控制字符或进行字符转换。使用t r时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。t r刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。下面讲述:去除重复出现的字符下面文件包含了一些打印错误。这种情况时常发生,例如在v i编辑器中,偶尔按住一个键不放。        

freenaut的专栏 1036

Shell 命令集合 文档编辑】Linux 字符转换或删除 tr 命令使用指南

Linux中,tr命令用于对文本进行字符转换或删除操作。它可以对输入流或文件中的字符进行替换、删除或压缩,并将结果输出到标准输出流或指定的文件中。

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 1157

linux 笔记,需牢记

一、通过子shell运行命令,并返回当前目录代码如下: (cd /etc && ls -a) 该命令会输出/etc目录的内容,然而,你的工作目录并没有更换为/etc目录

littlewhistler的博客 375

shell之常用工具(cut、sort、uniq、tr

cut命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定file 参数,cut命令将读取标准输入。必须指定 -b(字节) 、-c(字符) 或 -f(第几列) 标志之一。字符和字节的区别 选项 功能 -b 按字节截取 -c 按字符截取,常用于中文 -d 指定以什么为分割符截取,默认为制表符 -f 通常和-d一起使用(表示截取第几列) 3、案例演示 案例1:截取/etc/passwd 文件的中root用户的第7列(-d -f)案例2:

种一颗树最好的时间是十年前,其次是现在! 2197

shell常用命令tr命令

shell常用命令tr命令1. tr命令的用法 1. tr命令的用法 tr就是translate的简写 tr命令主要功能是转化 参数 说明 -c ,-C 字符串替换,要求字符集为ASCII -d 删除字符 -s 删除所有重复出现字符序列,只保留第一个(即将重复出现字符压缩为一个字符串) -t 删除第一字符集较第二字符集多出的字符 参数 说明 [:g...

kaiser king的博客 1099

Shell常用命令-- tr 详解

一、tr命令 trtranslate的简写 在这里用到的意思是转化,转变,转换 命令参数及说明: 参数 全称 说明 -c, -C –complement 用集合1中的字符串替换,要求字符集为ASCII。 -d –delete 删除集合1中的字符而不是转换 -s , –squeeze-repeats 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串...

qq_35887546的博客 1128

Shell脚本-tr工具

Shell脚本-tr工具

m0_61787196的博客 728

shell脚本之——管道命令(sort/uniq/tr/cut/eval命令

shell脚本管道命令详解

zcien的博客 2437

linux shell tr命令,shell脚本中的tr用法

tr 用来从标准输入中通过替换或删除操作进行字符转换。tr 主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。带有最常用选项的t r命令格式为:tr-c -d -s["string1_to_translate_from" ] [ "string2_to_tr...

weixin_33326218的博客 2155

Shell 基本命令操作(seq-序列、tr-转换、diff-比较)

shell 实现对字符串替换,序列化

梦幻通灵 2403

Linux----tr命令详细使用方法

本文详细介绍了tr命令详细使用方法

redrose2100的博客 1万+

关于Linux shell tr 命令浅谈

s: squeeze-repeats,用SET1指定的字符来替换对应的重复字符 (replace each input sequence of a repeated character that is listed in SET1 with a single occurrence of that character)可以使用这一特点,删除文件中的空白行,实质上跟上面一样,都是用SET1指定的字符来替换对应的重复字符。上述代码将a转换为A,f转换为F,d转换为O。也可以利用字符集合进行转换。

xiaoweids的博客 402

shell脚本----基础命令sort-tr-uniq-cut-split-paste-eval

ASCII码,它是American Standard Code for Information Interchange的缩写(美国标准信息交换代码),已被国际标准化组织ISO采纳,作为国际通用的信息交换标准代码。sort命令以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序,比较的原则是从首字符向后,一次按。cat file | sort [选项]cat file | uniq [选项]格式:cut [选项] 参数。sort [选项] 参数。uniq [选项] 参数。tr [选项] 参数。

我的博客 1084

Shell---Shell常用命令tr、sed、cut)

trtr 命令用于转换或删除文件中的字符。从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。 tr [-cdst][--help][--version][第一字符集][第二字符集]参数: - -c, –complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换 - -d, –delete:删除指令字符 - -s, –squeeze

Twilight's Blog 2674

Linux Shell:`tr` 命令

Linux Shell 提供了各种命令和工具,以帮助用户执行日常任务,比如文件操作、文本处理和系统管理等。`tr` 命令是其中一个非常有用的文本处理工具,它用于转换或删除字符串中的字符。本文将深入探讨 `tr` 命令的基本用法和一些高级技巧,以帮助你有效地在 Linux 环境下处理文本数据。

常备不懈 1179

shell 命令 tr 用法解释

tr 命令的使用方法及解释,掌握 tr 命令可以给日常工作带来很多便利

weixin_43707146的博客 598
上一篇: 0027. shell命令--wc
下一篇: 0029. shell命令--grep
MineGi
博客等级 码龄9年 1853粉丝 144原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MineGi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值