首页 > 系统相关 >linux命令之tr

linux命令之tr

时间:2023-02-13 23:33:24浏览次数:75  
标签:字符 tr echo 命令 myfreax linux 替换

#####################

https://www.myfreax.com/linux-tr-command/

 

 

tr是Linux和Unix系统中的命令行程序,可转换,删除和压缩标准输入的字符,并将结果写入标准输出

tr命令通常通过管道与其他命令组合使用,并且可以执行删除重复字符,将大写转换为小写以及基本字符替换和删除的操作。

在本教程中,我们将通过实际示例和最常见选项的详细说明向您展示如何使用tr命令。

tr 命令选项

tr命令的语法形式是tr OPTION... SET1 [SET2]OPTION选项是必须的参数,SET是字符集合,可以是一个多个字符集合。

tr命令默认接受具有相同长度的两组字符,并用第二组中字符集合替换第一组存在的字符集合。

例如命令echo 'myfreax' | tr 'myf' 'red'm替换为ry替换为e,将f替换为d

echo 'myfreax' | tr 'myf' 'red'
redreax

也可以使用字符范围来定义字符集,减少繁琐的输入,例如你要输入lmno,可以使用l-n代替。

也就是说命令echo 'myfreax' | tr 'lmno' 'wxyz'echo 'myfreax' | tr 'l-n' 'w-z'是等价的。

echo 'myfreax' | tr 'lmno' 'wxyz'
echo 'myfreax' | tr 'l-n' 'w-z'

当使用tr命令的-c/--complement选项时,tr命令将会替换第一组不存在的所有字符。

例如命令echo 'myfreax' | tr -c 'fa' 'xy'使用y替换字符串myfreax不是f或者a的字符。

您可能已经注意到输出比输入多一个可见的字符。这是因为echo命令会打印一个不可见的换行符\n

tr命令也将\n字符也替换为y。为了使echo命令不打印换行符,请使用echo命令的-n选项。

echo 'myfreax' | tr -c 'fa' 'xy'
echo -n 'myfreax' | tr -c  'fa' 'xy'
yyfyyayy

tr命令的-d/--delete选项删除指定字符集合。例如命令echo 'myfreax' | tr -d 'ea'删除字符串myfreaxea字符串。

在不压缩字符的情况下删除字符时,您只能指定一组。

echo 'myfreax' | tr -d 'ea'
myfrx

-s/--squeeze-repeats选项使用最后一个字符集合替换重复出现的字符。命令echo "GNU     \    Linux" | tr -s ' '删除重复出现的空格字符。

在指定第二个字符集合时,首先使用第一个字符集合替换字符串GNU     \    Linux,然后使用第二个字符集合替换第一个字符集合。

echo "GNU     \    Linux" | tr -s ' ' #GNU \ Linux
echo "GNU     \    Linux" | tr -s ' ' '_' #GNU_\_Linux

tr 命令转换小写大写

将小写转换为大写或者大写转小写。是tr命令的典型用例之一。在指定字符集合时可以使用[:lower:]匹配小写字符,[:upper:]匹配大写字符。

除了字符类,您还可以使用范围,例如'a-z'匹配小写字符串,'A-Z'匹配大写字符。要将大写转换为小写,只需切换字符集合的位置即可。

命令echo 'myfreax' | tr 'a-z' 'A-Z'转换为大写,echo 'myfreax' | tr 'A-Z' 'a-z'转换为小写。

echo 'myfreax' | tr '[:lower:]' '[:upper:]' #MYFREAX
echo 'myfreax' | tr 'a-z' 'A-Z' #MYFREAX

tr 命令删除数字

[:digit:]代表所有数字字符,要删除数字,可以组合使用tr命令的-cd选项删除所有非数字字符。

tr命令的-c选项表示替换第一组不存在的所有字符。-s选项表示删除字符一组字符集合存在的字符。

tr -cd [:digit:]组合起来就是删除第一组字符集合不是数字的字符,如果你要删除不是数字的字符,使用[:alpha:]替换[:digit:]

echo "my phone is 123-456-7890" | tr -cd [:digit:]
1234567890

tr 命令在单词末尾插入换行符

[:alnum:]代表所有数字和字符A-Za-z,要在单词末尾插入换行符,可以组合使用tr命令的-cs选项删除所有非数字字符。

tr命令的-c选项表示替换第一组不存在的所有字符。-s选项表示使用最后一个字符集合替换重复出现的字符。-c '[:alnum:]'表示搜索所有空白字符。

tr -cs '[:alnum:]' '\n'组合起来就是搜索所有空白字符串替换为换行符\n

echo 'GNU is an operating system' | tr -cs '[:alnum:]' '\n'
GNU
is
an
operating
system

tr 命令删除空行

由于tr命令仅接受标准输入,因此必须使用标准输入重定向符号<,将标准输入的键盘替换为文件。

tr命令的-s选项表示使用最后一个字符集合替换重复出现的字符。换行符号在单行中会被以为是重复字符串。

tr -s '\n'组合就是替换重复的换行符,由于命令没有指定第二个字符集合,因此没有字符替换。

最后> new_file.txt就是将tr命令的标准输出重定向到文件new_file.txt

tr -s '\n' < file.txt > new_file.txt

tr 命令打印$PATH目录

$PATH环境变量是用冒号分隔的目录列表,指示Shell程序在用户运行命令时要搜索可执行文件的目录。

如要在每一行打印每个$PATH环境变量的目录,只需要将冒号:替换为换行符号即可。

echo $PATH | tr  ':' '\n'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin

结论

现在,您应该对如何使用Linux tr命令有很好的了解。tr只能使用单个字符。对于复杂的模式匹配和字符串处理应该使用sedawk

 

 

 

 

 

 

 

 

 

 

 

 

 

###############

标签:字符,tr,echo,命令,myfreax,linux,替换
From: https://www.cnblogs.com/igoodful/p/17118293.html

相关文章

  • maven 工程pom依赖优化及常用命令
    本文为博主原创,转载请注明出处:1.mvndependency:list----列出项目的所有jar包mvndependency:list-Dverbose该命令可以列出项目依赖的所有jar包,-Dverbose参数......
  • linux生成随机密码
    ##########################yum-yinstallpwgenyum-yinstallexpectyum-yinstallopenssl  pwgen生成32位随机密码:大小写字母和数字组成,且无特殊字符[......
  • R语言Pearson相关性分析就业率和“性别平等”谷歌搜索热度google trend时间序列数据可
    全文链接:http://tecdat.cn/?p=31585原文出处:拓端数据部落公众号GoogleTrends,即谷歌趋势。谷歌趋势是谷歌旗下一款基于搜索数据推出的一款分析工具。它通过分析谷歌搜索......
  • Linux管理文件命令-tail查看文件结尾的内容
    前言    前面有学习了查看文件开头的内容,那么自然就会有查看结尾的内容,这个命令不仅可以作为查看结尾的内容,还可实时查看文件更新的状态等信息,让我们一起来看看这个......
  • linux008之echo命令显示系统变量和常量
    linux中的系统变量和常量:简介:这里说的变量和常量与windows中的环境变量类似,如在windows中配置的java的环境变量,是这么配置的。java_home:xxxxx/bin,这个时候如果在linu......
  • #yyds干货盘点#如何在 Linux 下删除分区
    有时,您可能希望删除Linux系统上的一些磁盘分区,以恢复或重新获得一些存储空间。只需几个简单的步骤,就可以在命令行上轻松完成这一任务。使用fdisk工具删除一个标准分区fd......
  • linux中软件有哪几种安装方式
    一、绿色安装1.找到相应的安装包,例如apache-tomcat-9.0.zip   上传到linux中的opt目录2.解压安装包  unzip  apache-tomcat-9.0.zip3.进入tomcat目录下的bi......
  • 【Linux】查看Linux服务器配置概况/CPU/GPU/内存
    ✨配置概况在有GUI界面的Linux服务器可以上直接点击右上角选择Setting>AboutCPU:36核心,主频3.00Ghz,x84_64架构内存:125.5G硬盘:5T✨CPUCPU:36核心,主频3.00Ghz,x84_64......
  • Linux知识点
    Linux虚拟化所需工具:https://pan.baidu.com/s/1643-kYcx9oPGnGEZM1pLOw?pwd=g0v5提取码:g0v5基础包#解决在7的版本中没有ifconfig命令,加上-y不用手动确认yuminstall......
  • Spring Cloud Contract/Test
    Spring|Cloudhttps://spring.io/cloudApacheOpenWhiskisaserverless,opensourcecloudplatformhttps://openwhisk.apache.org/SpringCloudContracthttps:/......