【shell】tr

2024-05-24 21:32
文章标签 shell tr

本文主要是介绍【shell】tr,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

tr本意是traslate,转换。

用法是:tr [options] 'set1' 'set2'

解释:tr命令只能以stdin为输入,把输入的内容里set1的内容替换为对应的set2的内容。如果set1和set2长度相等,那么这就是一个一对一的映射,如果set1比set2多,那么set1多出来的部分会对应set2最后一个,反之,set2多出来的部分想会被忽略。

如果是连续的字符,我们可以使用'a-z' 这样的形式。如果不连续,那么就是三个字符。

这个命令是处理简易文本内容的比较好用的命令。

只能接受stdin意味着,它只能使用管道的方式来获取前一个命令的输出作为自己的输入。那么分两种情况,如果我们要处理的内容在文件里,可以使用cat把内容读到stdin,否则如果是在shell脚本的变量里或者是终端里的字符串,可以使用echo命令。

一般的命令比如cat,是既可以接受一个管道的输入,也可以通过参数指定文件名来以一个文件作为输入,但有些命令却是只可以以stdin为输入,比如这里的tr。

#!/bin/basha="abcde"b=$(echo $a | tr 'a-z' 'A-Z')echo $bb=$(cat 't.txt' | tr 'a-z' 'A-Z')echo $b

这是该命令的输入。该命令的用处在于比如前一个命令输出了很多内容,想把这些内容转为一个数组,就可以使用tr把标记字符转为空格,然后赋值给一个数组。

其他用法:

删除字符:

使用-c参数,可以吧set1里的字符删除。


压缩字符:

使用-s参数,把多个连续的相同字符压缩成一个


这篇关于【shell】tr的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

jenkins 插件执行shell命令时,提示“Command not found”处理方法

首先提示找不到“Command not found,可能我们第一反应是查看目标机器是否已支持该命令,不过如果相信能找到这里来的朋友估计遇到的跟我一样,其实目标机器是没有问题的通过一些远程工具执行shell命令是可以执行。奇怪的就是通过jenkinsSSH插件无法执行,经一番折腾各种搜索发现是jenkins没有加载/etc/profile导致。 【解决办法】: 需要在jenkins调用shell脚

【MRI基础】TR 和 TE 时间概念

重复时间 (TR) 磁共振成像 (MRI) 中的 TR(重复时间,repetition time)是施加于同一切片的连续脉冲序列之间的时间间隔。具体而言,TR 是施加一个 RF(射频)脉冲与施加下一个 RF 脉冲之间的持续时间。TR 以毫秒 (ms) 为单位,主要控制后续脉冲之前的纵向弛豫程度(T1 弛豫),使其成为显著影响 MRI 中的图像对比度和信号特性的重要参数。 回声时间 (TE)

站长常用Shell脚本整理分享(全)

站长常用Shell脚本整理分享 站长常用Shell脚本整理分享1-10 站长常用Shell脚本整理分享11-20 站长常用Shell脚本整理分享21-30 站长常用Shell脚本整理分享31-40 站长常用Shell脚本整理分享41-50 站长常用Shell脚本整理分享51-59 长期更新

Shell脚本实现自动登录服务器

1.登录脚本 login_server.sh #!/bin/bash# ReferenceLink:https://yq.aliyun.com/articles/516347#show all host infos of serverList.txtif [[ -f ./serverList.txt ]]thenhostNum=`cat ./serverList.txt | wc -l`e

QT 编译报错:C3861: ‘tr‘ identifier not found

问题: QT 编译报错:C3861: ‘tr’ identifier not found 原因 使用tr的地方所在的类没有继承自 QObject 类 或者在不在某一类中, 解决方案 就直接用类名引用 :QObject::tr( )

[轻笔记]ubuntu shell脚本切换conda环境

source /home/yourhostname/anaconda3/etc/profile.d/conda.sh # 关键!!!conda activate env_name

[轻笔记] ubuntu Shell脚本实现监视指定进程的运行状态,并能在程序崩溃后重启动该程序

根据网上博客实现,发现只能监测进程离线,然后对其进行重启;然而,脚本无法打印程序正常状态的信息。自己通过不断修改测试,发现问题主要在重启程序的命令上(需要让重启的程序在后台运行,不然会影响监视脚本进程,使其无法正常工作)。具体程序如下: #!/bin/bashwhile [ 1 ] ; dosleep 3if [ $(ps -ef|grep exe_name|grep -v grep|

adb shell 执行后台程序后断开adb后台进程被结束的解决办法

环境:Android 版本 Android8 通常让程序后台执行就是在命令 最后加上 &即可,但是在Android 8上实验发现,程序的确后台了,但是拔掉USB线再连接上发现进程已结束。不确定Android早期版本是否存在此问题。 参考网上一些Linux方法,如加nohup 仍然无效,还是会结束。看来Android adb shell 与 Linux shell 还是有一定区别。 后来在网上

shell脚本中变量中字符串替换的测试 /和//的区别

test_char=abbbcbbbf echo "bf:test_char = " $test_char test_char=${test_char/bbb/ddd} echo "af:test_char = " $test_char 输出: bf:test_char =  abbbcbbbf af:test_char =  adddcbbbf 只匹配第一个

shell循环sleep while例子 条件判断

i=1# 小于5等于时候才执行while [ ${i} -le 5 ]doecho ${i}i=`expr ${i} + 1`# 休眠3秒sleep 3doneecho done 参考 http://c.biancheng.net/cpp/view/2736.html